All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/fuzzer_proxy.c:30,1
    - Dst: eventfd
      Src: /src/fuzzer_proxy.c:33,1
    - Dst: event_config_new
      Src: /src/fuzzer_proxy.c:35,1
    - Dst: event_config_set_flag
      Src: /src/fuzzer_proxy.c:36,1
    - Dst: event_base_new_with_config
      Src: /src/fuzzer_proxy.c:37,1
    - Dst: memcached_thread_init
      Src: /src/fuzzer_proxy.c:39,1
    - Dst: get_worker_thread
      Src: /src/fuzzer_proxy.c:41,1
    - Dst: proxy_init
      Src: /src/fuzzer_proxy.c:44,1
    - Dst: conn_new
      Src: /src/fuzzer_proxy.c:49,1
    - Dst: proxy_thread_init
      Src: /src/fuzzer_proxy.c:59,1
    - Dst: assoc_init
      Src: /src/fuzzer_proxy.c:62,1
    - Dst: hash_init
      Src: /src/fuzzer_proxy.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 66
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/fuzzer_proxy.c
    functionUses: 0
    functionsReached:
    - conn_new
    - hash_init
    - proxy_thread_init
    - memcached_thread_init
    - proxy_init
    - assoc_init
    - event_base_new_with_config
    - event_config_set_flag
    - event_config_new
    - eventfd
    - get_worker_thread
    - calloc
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_cache_alloc
      Src: /src/fuzzer_proxy.c:75,1
    - Dst: memcpy
      Src: /src/fuzzer_proxy.c:80,1
    - Dst: try_read_command_proxy
      Src: /src/fuzzer_proxy.c:82,1
    - Dst: do_cache_free
      Src: /src/fuzzer_proxy.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzzer_proxy.c
    functionUses: 0
    functionsReached:
    - try_read_command_proxy
    - do_cache_alloc
    - do_cache_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:57,1
    - Dst: read
      Src: /src/memcached/testapp.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - struct conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: tcp_read
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - assert
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tcp_read(struct conn *c, void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:62,1
    - Dst: write
      Src: /src/memcached/testapp.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - struct conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: tcp_write
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - write
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tcp_write(struct conn *c, const void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:67,1
    - Dst: SSL_read
      Src: /src/memcached/testapp.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - struct conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ssl_read
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - SSL_read
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ssl_read(struct conn *c, void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:72,1
    - Dst: SSL_write
      Src: /src/memcached/testapp.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - struct conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: ssl_write
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - assert
    - SSL_write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ssl_write(struct conn *c, const void *buf, size_t count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/memcached/testapp.c:87,1
    - Dst: SSL_free
      Src: /src/memcached/testapp.c:88,1
    - Dst: SSL_CTX_free
      Src: /src/memcached/testapp.c:91,1
    - Dst: close
      Src: /src/memcached/testapp.c:93,1
    - Dst: free
      Src: /src/memcached/testapp.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: close_conn
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - free
    - SSL_CTX_free
    - SSL_free
    - SSL_shutdown
    - close
    linkageType: ''
    returnType: void
    signature: void close_conn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cache_create
      Src: /src/memcached/testapp.c:100,1
    - Dst: assert
      Src: /src/memcached/testapp.c:101,1
    - Dst: cache_destroy
      Src: /src/memcached/testapp.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (cache != NULL)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: cache_create_test
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - cache_destroy
    - assert
    - cache_create
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return cache_create_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_create
      Src: /src/memcached/testapp.c:109,1
    - Dst: cache_alloc
      Src: /src/memcached/testapp.c:113,1
    - Dst: cache_free
      Src: /src/memcached/testapp.c:114,1
    - Dst: cache_alloc
      Src: /src/memcached/testapp.c:116,1
    - Dst: assert
      Src: /src/memcached/testapp.c:117,1
    - Dst: cache_free
      Src: /src/memcached/testapp.c:118,1
    - Dst: cache_destroy
      Src: /src/memcached/testapp.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (p == ptr)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: cache_reuse_test
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - cache_free
    - assert
    - cache_destroy
    - cache_create
    - cache_alloc
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return cache_reuse_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_create
      Src: /src/memcached/testapp.c:127,1
    - Dst: cache_alloc
      Src: /src/memcached/testapp.c:135,1
    - Dst: assert
      Src: /src/memcached/testapp.c:136,1
    - Dst: memset
      Src: /src/memcached/testapp.c:137,1
    - Dst: cache_free
      Src: /src/memcached/testapp.c:141,1
    - Dst: cache_destroy
      Src: /src/memcached/testapp.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - datasize
    argTypes:
    - size_t
    assertStmts:
    - condition: (ptr[ii] != 0)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: cache_bulkalloc
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - cache_create
    - cache_free
    - assert
    - cache_destroy
    - memset
    - cache_alloc
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return cache_bulkalloc(size_t datasize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_bulkalloc
      Src: /src/memcached/testapp.c:151,1
    - Dst: cache_bulkalloc
      Src: /src/memcached/testapp.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: test_issue_161
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - cache_bulkalloc
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_issue_161(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_create
      Src: /src/memcached/testapp.c:162,1
    - Dst: sigemptyset
      Src: /src/memcached/testapp.c:170,1
    - Dst: sigaction
      Src: /src/memcached/testapp.c:171,1
    - Dst: cache_alloc
      Src: /src/memcached/testapp.c:174,1
    - Dst: cache_free
      Src: /src/memcached/testapp.c:177,1
    - Dst: assert
      Src: /src/memcached/testapp.c:178,1
    - Dst: cache_free
      Src: /src/memcached/testapp.c:182,1
    - Dst: assert
      Src: /src/memcached/testapp.c:183,1
    - Dst: sigaction
      Src: /src/memcached/testapp.c:186,1
    - Dst: cache_destroy
      Src: /src/memcached/testapp.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (cache_error == -1)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/memcached/testapp.c
    - condition: (cache_error == 1)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 194
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 194
    functionName: cache_redzone_test
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - cache_free
    - sigaction
    - assert
    - sigemptyset
    - cache_destroy
    - cache_create
    - cache_alloc
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return cache_redzone_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/testapp.c:199,1
    - Dst: cache_create
      Src: /src/memcached/testapp.c:201,1
    - Dst: assert
      Src: /src/memcached/testapp.c:202,1
    - Dst: cache_alloc
      Src: /src/memcached/testapp.c:206,1
    - Dst: assert
      Src: /src/memcached/testapp.c:207,1
    - Dst: assert
      Src: /src/memcached/testapp.c:209,1
    - Dst: cache_set_limit
      Src: /src/memcached/testapp.c:212,1
    - Dst: cache_free
      Src: /src/memcached/testapp.c:215,1
    - Dst: assert
      Src: /src/memcached/testapp.c:217,1
    - Dst: cache_destroy
      Src: /src/memcached/testapp.c:218,1
    - Dst: free
      Src: /src/memcached/testapp.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (cache != NULL)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/memcached/testapp.c
    - condition: (alloc_objs[i] != NULL)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/memcached/testapp.c
    - condition: (cache->total == allocated_num)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/memcached/testapp.c
    - condition: (cache->total == allocated_num-1)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 223
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 223
    functionName: cache_limit_revised_downward_test
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - free
    - cache_free
    - assert
    - cache_destroy
    - cache_set_limit
    - cache_create
    - calloc
    - cache_alloc
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return cache_limit_revised_downward_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stats_prefix_clear
      Src: /src/memcached/testapp.c:228,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:229,1
    - Dst: assert
      Src: /src/memcached/testapp.c:230,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:231,1
    - Dst: assert
      Src: /src/memcached/testapp.c:232,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:234,1
    - Dst: assert
      Src: /src/memcached/testapp.c:235,1
    - Dst: assert
      Src: /src/memcached/testapp.c:236,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:237,1
    - Dst: assert
      Src: /src/memcached/testapp.c:238,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:239,1
    - Dst: assert
      Src: /src/memcached/testapp.c:240,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:241,1
    - Dst: assert
      Src: /src/memcached/testapp.c:242,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:243,1
    - Dst: assert
      Src: /src/memcached/testapp.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pfs1 == NULL)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/memcached/testapp.c
    - condition: (pfs1 == NULL)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/memcached/testapp.c
    - condition: (pfs1 != NULL)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/memcached/testapp.c
    - condition: (0ULL == (pfs1->num_gets + pfs1->num_sets + pfs1->num_deletes + pfs1->num_hits))
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/memcached/testapp.c
    - condition: (pfs1 == pfs2)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/memcached/testapp.c
    - condition: (pfs1 == pfs2)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/memcached/testapp.c
    - condition: (pfs1 != pfs2)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/memcached/testapp.c
    - condition: (pfs1 != pfs2)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 246
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 246
    functionName: test_stats_prefix_find
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - stats_prefix_find
    - assert
    - stats_prefix_clear
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_stats_prefix_find(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_prefix_clear
      Src: /src/memcached/testapp.c:250,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/testapp.c:252,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:253,1
    - Dst: assert
      Src: /src/memcached/testapp.c:257,1
    - Dst: assert
      Src: /src/memcached/testapp.c:258,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/testapp.c:259,1
    - Dst: assert
      Src: /src/memcached/testapp.c:260,1
    - Dst: assert
      Src: /src/memcached/testapp.c:261,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/testapp.c:262,1
    - Dst: assert
      Src: /src/memcached/testapp.c:263,1
    - Dst: assert
      Src: /src/memcached/testapp.c:264,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/testapp.c:265,1
    - Dst: assert
      Src: /src/memcached/testapp.c:266,1
    - Dst: assert
      Src: /src/memcached/testapp.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (1 == pfs->num_gets)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/memcached/testapp.c
    - condition: (0 == pfs->num_hits)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/memcached/testapp.c
    - condition: (2 == pfs->num_gets)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/memcached/testapp.c
    - condition: (0 == pfs->num_hits)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/memcached/testapp.c
    - condition: (3 == pfs->num_gets)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/memcached/testapp.c
    - condition: (3 == pfs->num_gets)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/memcached/testapp.c
    - condition: (1 == pfs->num_hits)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/memcached/testapp.c
    - condition: (1 == pfs->num_hits)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: test_stats_prefix_record_get
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - stats_prefix_find
    - stats_prefix_record_get
    - assert
    - stats_prefix_clear
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_stats_prefix_record_get(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_prefix_clear
      Src: /src/memcached/testapp.c:273,1
    - Dst: stats_prefix_record_delete
      Src: /src/memcached/testapp.c:275,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:276,1
    - Dst: assert
      Src: /src/memcached/testapp.c:280,1
    - Dst: assert
      Src: /src/memcached/testapp.c:281,1
    - Dst: assert
      Src: /src/memcached/testapp.c:282,1
    - Dst: assert
      Src: /src/memcached/testapp.c:283,1
    - Dst: stats_prefix_record_delete
      Src: /src/memcached/testapp.c:284,1
    - Dst: assert
      Src: /src/memcached/testapp.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 == pfs->num_hits)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/memcached/testapp.c
    - condition: (0 == pfs->num_gets)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/memcached/testapp.c
    - condition: (1 == pfs->num_deletes)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/memcached/testapp.c
    - condition: (0 == pfs->num_sets)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/memcached/testapp.c
    - condition: (1 == pfs->num_deletes)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: test_stats_prefix_record_delete
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - stats_prefix_find
    - stats_prefix_record_delete
    - assert
    - stats_prefix_clear
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_stats_prefix_record_delete(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_prefix_clear
      Src: /src/memcached/testapp.c:291,1
    - Dst: stats_prefix_record_set
      Src: /src/memcached/testapp.c:293,1
    - Dst: stats_prefix_find
      Src: /src/memcached/testapp.c:294,1
    - Dst: assert
      Src: /src/memcached/testapp.c:298,1
    - Dst: assert
      Src: /src/memcached/testapp.c:299,1
    - Dst: assert
      Src: /src/memcached/testapp.c:300,1
    - Dst: assert
      Src: /src/memcached/testapp.c:301,1
    - Dst: stats_prefix_record_delete
      Src: /src/memcached/testapp.c:302,1
    - Dst: assert
      Src: /src/memcached/testapp.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 == pfs->num_hits)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/memcached/testapp.c
    - condition: (0 == pfs->num_gets)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/memcached/testapp.c
    - condition: (0 == pfs->num_deletes)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/memcached/testapp.c
    - condition: (1 == pfs->num_sets)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/memcached/testapp.c
    - condition: (1 == pfs->num_sets)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 305
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 305
    functionName: test_stats_prefix_record_set
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - stats_prefix_record_set
    - stats_prefix_clear
    - stats_prefix_record_delete
    - assert
    - stats_prefix_find
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_stats_prefix_record_set(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/testapp.c:308,1
    - Dst: stats_prefix_clear
      Src: /src/memcached/testapp.c:315,1
    - Dst: assert
      Src: /src/memcached/testapp.c:317,1
    - Dst: strcmp
      Src: /src/memcached/testapp.c:317,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/testapp.c:317,1
    - Dst: assert
      Src: /src/memcached/testapp.c:318,1
    - Dst: stats_prefix_record_set
      Src: /src/memcached/testapp.c:319,1
    - Dst: free
      Src: /src/memcached/testapp.c:320,1
    - Dst: assert
      Src: /src/memcached/testapp.c:322,1
    - Dst: strcmp
      Src: /src/memcached/testapp.c:322,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/testapp.c:322,1
    - Dst: assert
      Src: /src/memcached/testapp.c:323,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:323,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/testapp.c:324,1
    - Dst: free
      Src: /src/memcached/testapp.c:325,1
    - Dst: assert
      Src: /src/memcached/testapp.c:327,1
    - Dst: strcmp
      Src: /src/memcached/testapp.c:327,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/testapp.c:327,1
    - Dst: assert
      Src: /src/memcached/testapp.c:328,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:328,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/testapp.c:329,1
    - Dst: free
      Src: /src/memcached/testapp.c:330,1
    - Dst: assert
      Src: /src/memcached/testapp.c:332,1
    - Dst: strcmp
      Src: /src/memcached/testapp.c:332,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/testapp.c:332,1
    - Dst: assert
      Src: /src/memcached/testapp.c:333,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:333,1
    - Dst: stats_prefix_record_delete
      Src: /src/memcached/testapp.c:334,1
    - Dst: free
      Src: /src/memcached/testapp.c:335,1
    - Dst: assert
      Src: /src/memcached/testapp.c:337,1
    - Dst: strcmp
      Src: /src/memcached/testapp.c:337,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/testapp.c:337,1
    - Dst: assert
      Src: /src/memcached/testapp.c:338,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:338,1
    - Dst: stats_prefix_record_delete
      Src: /src/memcached/testapp.c:340,1
    - Dst: free
      Src: /src/memcached/testapp.c:341,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/testapp.c:344,1
    - Dst: assert
      Src: /src/memcached/testapp.c:345,1
    - Dst: strstr
      Src: /src/memcached/testapp.c:345,1
    - Dst: assert
      Src: /src/memcached/testapp.c:346,1
    - Dst: strstr
      Src: /src/memcached/testapp.c:346,1
    - Dst: assert
      Src: /src/memcached/testapp.c:347,1
    - Dst: strstr
      Src: /src/memcached/testapp.c:347,1
    - Dst: free
      Src: /src/memcached/testapp.c:348,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:353,1
    - Dst: hash
      Src: /src/memcached/testapp.c:355,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:355,1
    - Dst: assert
      Src: /src/memcached/testapp.c:360,1
    - Dst: stats_prefix_record_set
      Src: /src/memcached/testapp.c:361,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:361,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/testapp.c:362,1
    - Dst: assert
      Src: /src/memcached/testapp.c:363,1
    - Dst: strstr
      Src: /src/memcached/testapp.c:363,1
    - Dst: assert
      Src: /src/memcached/testapp.c:364,1
    - Dst: strstr
      Src: /src/memcached/testapp.c:364,1
    - Dst: assert
      Src: /src/memcached/testapp.c:365,1
    - Dst: strstr
      Src: /src/memcached/testapp.c:365,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:366,1
    - Dst: assert
      Src: /src/memcached/testapp.c:367,1
    - Dst: strstr
      Src: /src/memcached/testapp.c:367,1
    - Dst: free
      Src: /src/memcached/testapp.c:368,1
    - Dst: stats_prefix_clear
      Src: /src/memcached/testapp.c:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (5 == length)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/memcached/testapp.c
    - condition: (strlen(expected) == length)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/memcached/testapp.c
    - condition: (strlen(expected) == length)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/memcached/testapp.c
    - condition: (strcmp(expected, (buf = stats_prefix_dump(&length))) == 0)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/memcached/testapp.c
    - condition: (strstr(buf, "PREFIX abc get 2 hit 1 set 1 del 1\r\n") != NULL)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/memcached/testapp.c
    - condition: (strcmp("END\r\n", (buf = stats_prefix_dump(&length))) == 0)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/memcached/testapp.c
    - condition: (strcmp(expected, (buf = stats_prefix_dump(&length))) == 0)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/memcached/testapp.c
    - condition: (strcmp(expected, (buf = stats_prefix_dump(&length))) == 0)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/memcached/testapp.c
    - condition: (strstr(buf, "END\r\n") != NULL)
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/memcached/testapp.c
    - condition: (strlen(expected) == length)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/memcached/testapp.c
    - condition: (strstr(buf, "PREFIX abc get 2 hit 1 set 1 del 1\r\n") != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/memcached/testapp.c
    - condition: (strstr(buf, "END\r\n") != NULL)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/memcached/testapp.c
    - condition: (found_match)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/memcached/testapp.c
    - condition: (strstr(buf, "PREFIX def get 0 hit 0 set 0 del 1\r\n") != NULL)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/memcached/testapp.c
    - condition: (strstr(buf, tmp) != NULL)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/memcached/testapp.c
    - condition: (strcmp(expected, (buf = stats_prefix_dump(&length))) == 0)
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/memcached/testapp.c
    - condition: (strlen(expected) == length)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/memcached/testapp.c
    - condition: (strstr(buf, "PREFIX def get 0 hit 0 set 0 del 1\r\n") != NULL)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 374
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 374
    functionName: test_stats_prefix_dump
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - free
    - strstr
    - snprintf
    - stats_prefix_record_set
    - stats_prefix_clear
    - strlen
    - stats_prefix_record_get
    - hash
    - assert
    - stats_prefix_record_delete
    - stats_prefix_dump
    - strcmp
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_stats_prefix_dump(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:378,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:378,1
    - Dst: assert
      Src: /src/memcached/testapp.c:379,1
    - Dst: assert
      Src: /src/memcached/testapp.c:380,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:380,1
    - Dst: assert
      Src: /src/memcached/testapp.c:381,1
    - Dst: assert
      Src: /src/memcached/testapp.c:382,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:382,1
    - Dst: assert
      Src: /src/memcached/testapp.c:383,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:383,1
    - Dst: assert
      Src: /src/memcached/testapp.c:384,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:384,1
    - Dst: assert
      Src: /src/memcached/testapp.c:390,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:390,1
    - Dst: assert
      Src: /src/memcached/testapp.c:391,1
    - Dst: assert
      Src: /src/memcached/testapp.c:395,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:395,1
    - Dst: assert
      Src: /src/memcached/testapp.c:399,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:399,1
    - Dst: assert
      Src: /src/memcached/testapp.c:401,1
    - Dst: safe_strtoul
      Src: /src/memcached/testapp.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!safe_strtoul("", &val))
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoul("123BOGUS", &val))
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoul(" issue221", &val))
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoul("4294967295\r\nextrastring-morestring", &val))
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoul("123", &val))
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoul("+123", &val))
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/memcached/testapp.c
    - condition: (val == 4294967295L)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoul("18446744073709551615\r\nextrastring-morestring", &val))
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoul("-1", &val))
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoul("4294967295", &val))
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 405
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 405
    functionName: test_safe_strtoul
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - assert
    - safe_strtoul
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_safe_strtoul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:410,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:410,1
    - Dst: assert
      Src: /src/memcached/testapp.c:411,1
    - Dst: assert
      Src: /src/memcached/testapp.c:412,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:412,1
    - Dst: assert
      Src: /src/memcached/testapp.c:413,1
    - Dst: assert
      Src: /src/memcached/testapp.c:414,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:414,1
    - Dst: assert
      Src: /src/memcached/testapp.c:415,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:415,1
    - Dst: assert
      Src: /src/memcached/testapp.c:416,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:416,1
    - Dst: assert
      Src: /src/memcached/testapp.c:417,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:417,1
    - Dst: assert
      Src: /src/memcached/testapp.c:420,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:420,1
    - Dst: assert
      Src: /src/memcached/testapp.c:421,1
    - Dst: assert
      Src: /src/memcached/testapp.c:422,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:422,1
    - Dst: assert
      Src: /src/memcached/testapp.c:423,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:423,1
    - Dst: assert
      Src: /src/memcached/testapp.c:426,1
    - Dst: safe_strtoull
      Src: /src/memcached/testapp.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (safe_strtoull("123", &val))
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoull("18446744073709551616", &val))
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoull("18446744073709551615", &val))
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/memcached/testapp.c
    - condition: (val == 18446744073709551615ULL)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoull("18446744073709551615\r\nextrastring-morestring",
        &val))
      pos:
        line_end: 425
        line_start: 425
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoull("+123", &val))
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoull("123BOGUS", &val))
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoull("92837498237498237498029383", &val))
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoull(" issue221", &val))
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoull("", &val))
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoull("-1", &val))
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 428
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 428
    functionName: test_safe_strtoull
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - assert
    - safe_strtoull
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_safe_strtoull(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:432,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:432,1
    - Dst: assert
      Src: /src/memcached/testapp.c:433,1
    - Dst: assert
      Src: /src/memcached/testapp.c:434,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:434,1
    - Dst: assert
      Src: /src/memcached/testapp.c:435,1
    - Dst: assert
      Src: /src/memcached/testapp.c:436,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:436,1
    - Dst: assert
      Src: /src/memcached/testapp.c:437,1
    - Dst: assert
      Src: /src/memcached/testapp.c:438,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:438,1
    - Dst: assert
      Src: /src/memcached/testapp.c:439,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:439,1
    - Dst: assert
      Src: /src/memcached/testapp.c:440,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:440,1
    - Dst: assert
      Src: /src/memcached/testapp.c:441,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:441,1
    - Dst: assert
      Src: /src/memcached/testapp.c:444,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:444,1
    - Dst: assert
      Src: /src/memcached/testapp.c:445,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:445,1
    - Dst: assert
      Src: /src/memcached/testapp.c:446,1
    - Dst: assert
      Src: /src/memcached/testapp.c:451,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:451,1
    - Dst: assert
      Src: /src/memcached/testapp.c:454,1
    - Dst: safe_strtoll
      Src: /src/memcached/testapp.c:454,1
    - Dst: assert
      Src: /src/memcached/testapp.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (safe_strtoll("9223372036854775807", &val))
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoll(" 123 foo", &val))
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoll("-9223372036854775809", &val))
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/memcached/testapp.c
    - condition: (val == -123)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoll("123", &val))
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoll("+123", &val))
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtoll("-123", &val))
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoll("123BOGUS", &val))
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoll(" issue221", &val))
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoll("92837498237498237498029383", &val))
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoll("18446744073709551615", &val))
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/memcached/testapp.c
    - condition: (val == 9223372036854775807LL)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtoll("", &val))
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 457
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 457
    functionName: test_safe_strtoll
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - safe_strtoll
    - assert
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_safe_strtoll(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:461,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:461,1
    - Dst: assert
      Src: /src/memcached/testapp.c:462,1
    - Dst: assert
      Src: /src/memcached/testapp.c:463,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:463,1
    - Dst: assert
      Src: /src/memcached/testapp.c:464,1
    - Dst: assert
      Src: /src/memcached/testapp.c:465,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:465,1
    - Dst: assert
      Src: /src/memcached/testapp.c:466,1
    - Dst: assert
      Src: /src/memcached/testapp.c:467,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:467,1
    - Dst: assert
      Src: /src/memcached/testapp.c:468,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:468,1
    - Dst: assert
      Src: /src/memcached/testapp.c:469,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:469,1
    - Dst: assert
      Src: /src/memcached/testapp.c:470,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:470,1
    - Dst: assert
      Src: /src/memcached/testapp.c:476,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:476,1
    - Dst: assert
      Src: /src/memcached/testapp.c:477,1
    - Dst: assert
      Src: /src/memcached/testapp.c:483,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:483,1
    - Dst: assert
      Src: /src/memcached/testapp.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (val == 123)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/memcached/testapp.c
    - condition: (val == -123)
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtol("123", &val))
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtol("+123", &val))
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtol("-123", &val))
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtol("2147483647", &val))
      pos:
        line_end: 475
        line_start: 475
        source_file: /src/memcached/testapp.c
    - condition: (val == 2147483647L)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtol("", &val))
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/memcached/testapp.c
    - condition: (val == 123)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtol("92837498237498237498029383", &val))
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtol("123BOGUS", &val))
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/memcached/testapp.c
    - condition: (!safe_strtol(" issue221", &val))
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtol(" 123 foo", &val))
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 486
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 486
    functionName: test_safe_strtol
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - safe_strtol
    - assert
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_safe_strtol(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/memcached/testapp.c:499,1
    - Dst: getpid
      Src: /src/memcached/testapp.c:500,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:501,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:503,1
    - Dst: getpid
      Src: /src/memcached/testapp.c:503,1
    - Dst: remove
      Src: /src/memcached/testapp.c:505,1
    - Dst: remove
      Src: /src/memcached/testapp.c:506,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:513,1
    - Dst: getpid
      Src: /src/memcached/testapp.c:514,1
    - Dst: system
      Src: /src/memcached/testapp.c:515,1
    - Dst: fork
      Src: /src/memcached/testapp.c:518,1
    - Dst: assert
      Src: /src/memcached/testapp.c:519,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:525,1
    - Dst: putenv
      Src: /src/memcached/testapp.c:527,1
    - Dst: putenv
      Src: /src/memcached/testapp.c:529,1
    - Dst: putenv
      Src: /src/memcached/testapp.c:530,1
    - Dst: getuid
      Src: /src/memcached/testapp.c:553,1
    - Dst: assert
      Src: /src/memcached/testapp.c:570,1
    - Dst: execv
      Src: /src/memcached/testapp.c:570,1
    - Dst: access
      Src: /src/memcached/testapp.c:576,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:577,1
    - Dst: access
      Src: /src/memcached/testapp.c:581,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:582,1
    - Dst: assert
      Src: /src/memcached/testapp.c:583,1
    - Dst: fopen
      Src: /src/memcached/testapp.c:586,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:588,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:589,1
    - Dst: assert
      Src: /src/memcached/testapp.c:590,1
    - Dst: fgets
      Src: /src/memcached/testapp.c:595,1
    - Dst: strncmp
      Src: /src/memcached/testapp.c:596,1
    - Dst: assert
      Src: /src/memcached/testapp.c:598,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:598,1
    - Dst: fclose
      Src: /src/memcached/testapp.c:602,1
    - Dst: assert
      Src: /src/memcached/testapp.c:603,1
    - Dst: remove
      Src: /src/memcached/testapp.c:603,1
    - Dst: access
      Src: /src/memcached/testapp.c:610,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:611,1
    - Dst: fopen
      Src: /src/memcached/testapp.c:614,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:616,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:617,1
    - Dst: assert
      Src: /src/memcached/testapp.c:618,1
    - Dst: fgets
      Src: /src/memcached/testapp.c:622,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:623,1
    - Dst: fclose
      Src: /src/memcached/testapp.c:625,1
    - Dst: assert
      Src: /src/memcached/testapp.c:628,1
    - Dst: safe_strtol
      Src: /src/memcached/testapp.c:628,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 83
    argCount: 3
    argNames:
    - port_out
    - daemon
    - timeout
    argTypes:
    - in_port_t*
    - bool
    - int
    assertStmts:
    - condition: (false)
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/memcached/testapp.c
    - condition: (false)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/memcached/testapp.c
    - condition: (pid != -1)
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/memcached/testapp.c
    - condition: (false)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtol(buffer + 10, &val))
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/memcached/testapp.c
    - condition: (safe_strtol(buffer, &val))
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/memcached/testapp.c
    - condition: (execv(argv[0], argv) != -1)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/memcached/testapp.c
    - condition: (remove(filename) == 0)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 633
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 633
    functionName: start_server
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - remove
    - snprintf
    - strlen
    - access
    - fopen
    - system
    - safe_strtol
    - usleep
    - getuid
    - assert
    - fclose
    - getpid
    - fgets
    - strerror
    - fork
    - fprintf
    - strncmp
    - execv
    - putenv
    linkageType: ''
    returnType: pid_t
    signature: pid_t start_server(in_port_t *port_out, bool daemon, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_server
      Src: /src/memcached/testapp.c:637,1
    - Dst: assert
      Src: /src/memcached/testapp.c:638,1
    - Dst: kill
      Src: /src/memcached/testapp.c:638,1
    - Dst: sleep
      Src: /src/memcached/testapp.c:639,1
    - Dst: assert
      Src: /src/memcached/testapp.c:640,1
    - Dst: kill
      Src: /src/memcached/testapp.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (kill(pid, SIGTERM) == 0)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/memcached/testapp.c
    - condition: (kill(pid, SIGHUP) == 0)
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 643
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 643
    functionName: test_issue_44
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - start_server
    - sleep
    - kill
    - assert
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_issue_44(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/memcached/testapp.c:654,1
    - Dst: getaddrinfo
      Src: /src/memcached/testapp.c:655,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:657,1
    - Dst: gai_strerror
      Src: /src/memcached/testapp.c:657,1
    - Dst: perror
      Src: /src/memcached/testapp.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hostname
    - port
    argTypes:
    - char*
    - in_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 664
    functionName: lookuphost
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - fprintf
    - getaddrinfo
    - gai_strerror
    - snprintf
    - perror
    linkageType: ''
    returnType: struct addrinfo
    signature: struct addrinfo *lookuphost(const char *hostname, in_port_t port)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/testapp.c:670,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:671,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:672,1
    - Dst: lookuphost
      Src: /src/memcached/testapp.c:676,1
    - Dst: socket
      Src: /src/memcached/testapp.c:679,1
    - Dst: connect
      Src: /src/memcached/testapp.c:681,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:682,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:683,1
    - Dst: close
      Src: /src/memcached/testapp.c:684,1
    - Dst: fcntl
      Src: /src/memcached/testapp.c:687,1
    - Dst: fcntl
      Src: /src/memcached/testapp.c:688,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:689,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:690,1
    - Dst: close
      Src: /src/memcached/testapp.c:691,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:696,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:696,1
    - Dst: freeaddrinfo
      Src: /src/memcached/testapp.c:699,1
    - Dst: SSL_CTX_new
      Src: /src/memcached/testapp.c:704,1
    - Dst: SSLv23_client_method
      Src: /src/memcached/testapp.c:704,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:706,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:707,1
    - Dst: close
      Src: /src/memcached/testapp.c:708,1
    - Dst: SSL_new
      Src: /src/memcached/testapp.c:711,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:713,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:714,1
    - Dst: close
      Src: /src/memcached/testapp.c:715,1
    - Dst: SSL_set_fd
      Src: /src/memcached/testapp.c:718,1
    - Dst: SSL_connect
      Src: /src/memcached/testapp.c:719,1
    - Dst: SSL_get_error
      Src: /src/memcached/testapp.c:721,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:723,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:724,1
    - Dst: close
      Src: /src/memcached/testapp.c:725,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 4
    argNames:
    - hostname
    - port
    - nonblock
    - ssl
    argTypes:
    - char*
    - in_port_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 738
    functionName: connect_server
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - fprintf
    - connect
    - SSL_get_error
    - fcntl
    - socket
    - SSLv23_client_method
    - SSL_set_fd
    - SSL_new
    - SSL_connect
    - strerror
    - lookuphost
    - close
    - freeaddrinfo
    - SSL_CTX_new
    - calloc
    linkageType: ''
    returnType: struct conn
    signature: "struct conn *connect_server(const char *hostname, in_port_t port,\n
      \                           bool nonblock, const bool ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/memcached/testapp.c:742,1
    - Dst: assert
      Src: /src/memcached/testapp.c:743,1
    - Dst: strncpy
      Src: /src/memcached/testapp.c:745,1
    - Dst: mkstemp
      Src: /src/memcached/testapp.c:747,1
    - Dst: assert
      Src: /src/memcached/testapp.c:748,1
    - Dst: dup2
      Src: /src/memcached/testapp.c:749,1
    - Dst: assert
      Src: /src/memcached/testapp.c:750,1
    - Dst: close
      Src: /src/memcached/testapp.c:751,1
    - Dst: assert
      Src: /src/memcached/testapp.c:752,1
    - Dst: vperror
      Src: /src/memcached/testapp.c:755,1
    - Dst: dup2
      Src: /src/memcached/testapp.c:758,1
    - Dst: assert
      Src: /src/memcached/testapp.c:759,1
    - Dst: fopen
      Src: /src/memcached/testapp.c:764,1
    - Dst: assert
      Src: /src/memcached/testapp.c:765,1
    - Dst: fgets
      Src: /src/memcached/testapp.c:766,1
    - Dst: assert
      Src: /src/memcached/testapp.c:767,1
    - Dst: fclose
      Src: /src/memcached/testapp.c:768,1
    - Dst: unlink
      Src: /src/memcached/testapp.c:770,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:773,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:774,1
    - Dst: strcmp
      Src: /src/memcached/testapp.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oldstderr >= 0)
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/memcached/testapp.c
    - condition: (rv == STDERR_FILENO)
      pos:
        line_end: 749
        line_start: 749
        source_file: /src/memcached/testapp.c
    - condition: (rv == STDERR_FILENO)
      pos:
        line_end: 758
        line_start: 758
        source_file: /src/memcached/testapp.c
    - condition: (rv == 0)
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/memcached/testapp.c
    - condition: (prv)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/memcached/testapp.c
    - condition: (newfile > 0)
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/memcached/testapp.c
    - condition: (efile)
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 783
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 783
    functionName: test_vperror
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - fopen
    - fclose
    - mkstemp
    - dup
    - snprintf
    - strncpy
    - fgets
    - dup2
    - vperror
    - strerror
    - assert
    - close
    - unlink
    - strcmp
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_vperror(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/testapp.c:788,1
    - Dst: write
      Src: /src/memcached/testapp.c:791,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:794,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:794,1
    - Dst: abort
      Src: /src/memcached/testapp.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 801
    functionName: send_ascii_command
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - write
    - fprintf
    - strlen
    - strerror
    - abort
    linkageType: ''
    returnType: void
    signature: void send_ascii_command(const char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/memcached/testapp.c:813,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:816,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:816,1
    - Dst: abort
      Src: /src/memcached/testapp.c:817,1
    - Dst: assert
      Src: /src/memcached/testapp.c:820,1
    - Dst: assert
      Src: /src/memcached/testapp.c:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (nr == 1)
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/memcached/testapp.c
    - condition: (offset + 1 < size)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 829
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 829
    functionName: read_ascii_response
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strerror
    - abort
    - assert
    - read
    linkageType: ''
    returnType: void
    signature: void read_ascii_response(char *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_conn
      Src: /src/memcached/testapp.c:834,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:835,1
    - Dst: assert
      Src: /src/memcached/testapp.c:836,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:838,1
    - Dst: read_ascii_response
      Src: /src/memcached/testapp.c:840,1
    - Dst: assert
      Src: /src/memcached/testapp.c:841,1
    - Dst: strncmp
      Src: /src/memcached/testapp.c:841,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:841,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:843,1
    - Dst: read_ascii_response
      Src: /src/memcached/testapp.c:844,1
    - Dst: assert
      Src: /src/memcached/testapp.c:845,1
    - Dst: strncmp
      Src: /src/memcached/testapp.c:845,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:845,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:847,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:848,1
    - Dst: assert
      Src: /src/memcached/testapp.c:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (con)
      pos:
        line_end: 835
        line_start: 835
        source_file: /src/memcached/testapp.c
    - condition: (strncmp(buffer, "END", strlen("END")) == 0)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/memcached/testapp.c
    - condition: (strncmp(buffer, "CLIENT_ERROR", strlen("CLIENT_ERROR")) == 0)
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/memcached/testapp.c
    - condition: (con)
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 851
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 851
    functionName: test_issue_92
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - read_ascii_response
    - close_conn
    - connect_server
    - strncmp
    - strlen
    - assert
    - send_ascii_command
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_issue_92(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32c
      Src: /src/memcached/testapp.c:861,1
    - Dst: crc32c_sw
      Src: /src/memcached/testapp.c:862,1
    - Dst: assert
      Src: /src/memcached/testapp.c:863,1
    - Dst: assert
      Src: /src/memcached/testapp.c:864,1
    - Dst: crc32c
      Src: /src/memcached/testapp.c:867,1
    - Dst: crc32c_sw
      Src: /src/memcached/testapp.c:868,1
    - Dst: assert
      Src: /src/memcached/testapp.c:869,1
    - Dst: assert
      Src: /src/memcached/testapp.c:870,1
    - Dst: crc32c
      Src: /src/memcached/testapp.c:873,1
    - Dst: crc32c_sw
      Src: /src/memcached/testapp.c:874,1
    - Dst: assert
      Src: /src/memcached/testapp.c:875,1
    - Dst: assert
      Src: /src/memcached/testapp.c:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (crc_sw == 0x9c44184b)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/memcached/testapp.c
    - condition: (crc_hw == 0x9c44184b)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/memcached/testapp.c
    - condition: (crc_hw == 0xae10ee5a)
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/memcached/testapp.c
    - condition: (crc_sw == 0xae10ee5a)
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/memcached/testapp.c
    - condition: (crc_hw == 0xed37b906)
      pos:
        line_end: 874
        line_start: 874
        source_file: /src/memcached/testapp.c
    - condition: (crc_sw == 0xed37b906)
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 879
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 879
    functionName: test_crc32c
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - crc32c_sw
    - assert
    - crc32c
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_crc32c(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/testapp.c:883,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:886,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:887,1
    - Dst: assert
      Src: /src/memcached/testapp.c:888,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:890,1
    - Dst: assert
      Src: /src/memcached/testapp.c:892,1
    - Dst: read
      Src: /src/memcached/testapp.c:892,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:894,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:895,1
    - Dst: assert
      Src: /src/memcached/testapp.c:896,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:898,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:901,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:905,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:906,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:908,1
    - Dst: read_ascii_response
      Src: /src/memcached/testapp.c:910,1
    - Dst: assert
      Src: /src/memcached/testapp.c:911,1
    - Dst: strncmp
      Src: /src/memcached/testapp.c:911,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:911,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:913,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:914,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:915,1
    - Dst: read_ascii_response
      Src: /src/memcached/testapp.c:916,1
    - Dst: assert
      Src: /src/memcached/testapp.c:917,1
    - Dst: strncmp
      Src: /src/memcached/testapp.c:917,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:917,1
    - Dst: memset
      Src: /src/memcached/testapp.c:919,1
    - Dst: snprintf
      Src: /src/memcached/testapp.c:920,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:923,1
    - Dst: assert
      Src: /src/memcached/testapp.c:925,1
    - Dst: read
      Src: /src/memcached/testapp.c:925,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:927,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:928,1
    - Dst: assert
      Src: /src/memcached/testapp.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (con)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/memcached/testapp.c
    - condition: (strncmp(rsp, "END", strlen("END")) == 0)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/memcached/testapp.c
    - condition: (con)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/memcached/testapp.c
    - condition: (strncmp(rsp, "END", strlen("END")) == 0)
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/memcached/testapp.c
    - condition: (con->read(con, buffer, sizeof(buffer)) == 0)
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/memcached/testapp.c
    - condition: (con->read(con, buffer, sizeof(buffer)) == 0)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/memcached/testapp.c
    - condition: (con)
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 932
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 932
    functionName: test_issue_102
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - read_ascii_response
    - close_conn
    - connect_server
    - strncmp
    - usleep
    - snprintf
    - strlen
    - assert
    - read
    - memset
    - send_ascii_command
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_issue_102(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_server
      Src: /src/memcached/testapp.c:935,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:936,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:937,1
    - Dst: assert
      Src: /src/memcached/testapp.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (con)
      pos:
        line_end: 937
        line_start: 937
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 940
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 940
    functionName: start_memcached_server
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - close_conn
    - start_server
    - connect_server
    - assert
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return start_memcached_server(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_conn
      Src: /src/memcached/testapp.c:943,1
    - Dst: assert
      Src: /src/memcached/testapp.c:945,1
    - Dst: kill
      Src: /src/memcached/testapp.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (kill(server_pid, SIGTERM) == 0)
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 949
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 949
    functionName: stop_memcached_server
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - close_conn
    - kill
    - assert
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return stop_memcached_server(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_conn
      Src: /src/memcached/testapp.c:954,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:955,1
    - Dst: assert
      Src: /src/memcached/testapp.c:956,1
    - Dst: send_ascii_command
      Src: /src/memcached/testapp.c:958,1
    - Dst: assert
      Src: /src/memcached/testapp.c:960,1
    - Dst: read
      Src: /src/memcached/testapp.c:960,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:962,1
    - Dst: kill
      Src: /src/memcached/testapp.c:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (con)
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/memcached/testapp.c
    - condition: (con->read(con, buffer, sizeof(buffer)) == 0)
      pos:
        line_end: 959
        line_start: 959
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 970
      start: 951
    functionDepth: 2
    functionLinenumber: 951
    functionLinenumberEnd: 970
    functionName: shutdown_memcached_server
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - kill
    - close_conn
    - connect_server
    - assert
    - read
    - send_ascii_command
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return shutdown_memcached_server(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:978,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:979,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:982,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:985,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:987,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:988,1
    - Dst: rand
      Src: /src/memcached/testapp.c:995,1
    - Dst: write
      Src: /src/memcached/testapp.c:998,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:1001,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:1001,1
    - Dst: abort
      Src: /src/memcached/testapp.c:1002,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:1006,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - buf
    - len
    - hickup
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts:
    - condition: (val == (uint8_t)0x80)
      pos:
        line_end: 977
        line_start: 977
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1011
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 1011
    functionName: safe_send
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - write
    - fprintf
    - usleep
    - strerror
    - assert
    - abort
    - rand
    linkageType: ''
    returnType: void
    signature: void safe_send(const void* buf, size_t len, bool hickup)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/memcached/testapp.c:1019,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:1022,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:1022,1
    - Dst: abort
      Src: /src/memcached/testapp.c:1023,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1029,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (nr != 0)
      pos:
        line_end: 1028
        line_start: 1028
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1035
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1035
    functionName: safe_recv
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strerror
    - abort
    - assert
    - read
    linkageType: ''
    returnType: bool
    signature: bool safe_recv(void *buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:1039,1
    - Dst: safe_recv
      Src: /src/memcached/testapp.c:1040,1
    - Dst: ntohs
      Src: /src/memcached/testapp.c:1043,1
    - Dst: ntohs
      Src: /src/memcached/testapp.c:1044,1
    - Dst: ntohl
      Src: /src/memcached/testapp.c:1045,1
    - Dst: safe_recv
      Src: /src/memcached/testapp.c:1051,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:1056,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1060,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:1061,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:1064,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:1067,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:1069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (size > sizeof(*response))
      pos:
        line_end: 1038
        line_start: 1038
        source_file: /src/memcached/testapp.c
    - condition: (val == (uint8_t)0x81)
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1072
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1072
    functionName: safe_recv_packet
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ntohl
    - usleep
    - safe_recv
    - assert
    - ntohs
    linkageType: ''
    returnType: bool
    signature: bool safe_recv_packet(void *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:1085,1
    - Dst: memset
      Src: /src/memcached/testapp.c:1087,1
    - Dst: htons
      Src: /src/memcached/testapp.c:1090,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1092,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1099,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 9
    argNames:
    - buf
    - bufsz
    - cmd
    - key
    - keylen
    - dta
    - dtalen
    - flags
    - exp
    argTypes:
    - char*
    - size_t
    - uint8_t
    - void*
    - size_t
    - void*
    - size_t
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (bufsz > sizeof(*request) + keylen + dtalen)
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1105
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1105
    functionName: storage_command
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - htonl
    - htons
    - assert
    - memset
    - memcpy
    linkageType: ''
    returnType: off_t
    signature: "off_t storage_command(char*buf,\n                             size_t
      bufsz,\n                             uint8_t cmd,\n                             const
      void* key,\n                             size_t keylen,\n                             const
      void* dta,\n                             size_t dtalen,\n                             uint32_t
      flags,\n                             uint32_t exp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:1117,1
    - Dst: memset
      Src: /src/memcached/testapp.c:1119,1
    - Dst: htons
      Src: /src/memcached/testapp.c:1123,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1124,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1132,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1135,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 9
    argNames:
    - buf
    - bufsz
    - cmd
    - ext
    - extlen
    - key
    - keylen
    - dta
    - dtalen
    argTypes:
    - char*
    - size_t
    - uint8_t
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (bufsz > sizeof(*request) + extlen + keylen + dtalen)
      pos:
        line_end: 1116
        line_start: 1116
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1142
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1142
    functionName: ext_command
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - htonl
    - htons
    - assert
    - memset
    - memcpy
    linkageType: ''
    returnType: off_t
    signature: "off_t ext_command(char* buf,\n                         size_t bufsz,\n
      \                        uint8_t cmd,\n                         const void*
      ext,\n                         size_t extlen,\n                         const
      void* key,\n                         size_t keylen,\n                         const
      void* dta,\n                         size_t dtalen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_command
      Src: /src/memcached/testapp.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - buf
    - bufsz
    - cmd
    - key
    - keylen
    - dta
    - dtalen
    argTypes:
    - char*
    - size_t
    - uint8_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1153
    functionName: raw_command
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - ext_command
    linkageType: ''
    returnType: off_t
    signature: "off_t raw_command(char* buf,\n                         size_t bufsz,\n
      \                        uint8_t cmd,\n                         const void*
      key,\n                         size_t keylen,\n                         const
      void* dta,\n                         size_t dtalen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:1157,1
    - Dst: memset
      Src: /src/memcached/testapp.c:1159,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1166,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - buf
    - bufsz
    - cmd
    - exptime
    - use_extra
    argTypes:
    - char*
    - size_t
    - uint8_t
    - uint32_t
    - bool
    assertStmts:
    - condition: (bufsz > sizeof(*request))
      pos:
        line_end: 1156
        line_start: 1156
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1174
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1174
    functionName: flush_command
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - htonl
    - assert
    - memset
    linkageType: ''
    returnType: off_t
    signature: off_t flush_command(char* buf, size_t bufsz, uint8_t cmd, uint32_t
      exptime, bool use_extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:1184,1
    - Dst: memset
      Src: /src/memcached/testapp.c:1186,1
    - Dst: htons
      Src: /src/memcached/testapp.c:1190,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1192,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1193,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - buf
    - bufsz
    - cmd
    - key
    - keylen
    - exptime
    argTypes:
    - char*
    - size_t
    - uint8_t
    - void*
    - size_t
    - uint32_t
    assertStmts:
    - condition: (bufsz > sizeof(*request))
      pos:
        line_end: 1183
        line_start: 1183
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1201
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1201
    functionName: touch_command
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - htonl
    - htons
    - assert
    - memset
    - memcpy
    linkageType: ''
    returnType: off_t
    signature: "off_t touch_command(char* buf,\n                           size_t
      bufsz,\n                           uint8_t cmd,\n                           const
      void* key,\n                           size_t keylen,\n                           uint32_t
      exptime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:1212,1
    - Dst: memset
      Src: /src/memcached/testapp.c:1214,1
    - Dst: htons
      Src: /src/memcached/testapp.c:1217,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1219,1
    - Dst: htonll
      Src: /src/memcached/testapp.c:1221,1
    - Dst: htonll
      Src: /src/memcached/testapp.c:1222,1
    - Dst: htonl
      Src: /src/memcached/testapp.c:1223,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 8
    argNames:
    - buf
    - bufsz
    - cmd
    - key
    - keylen
    - delta
    - initial
    - exp
    argTypes:
    - char*
    - size_t
    - uint8_t
    - void*
    - size_t
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts:
    - condition: (bufsz > sizeof(*request) + keylen)
      pos:
        line_end: 1211
        line_start: 1211
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1229
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1229
    functionName: arithmetic_command
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - htonl
    - htons
    - htonll
    - assert
    - memset
    - memcpy
    linkageType: ''
    returnType: off_t
    signature: "off_t arithmetic_command(char* buf,\n                                size_t
      bufsz,\n                                uint8_t cmd,\n                                const
      void* key,\n                                size_t keylen,\n                                uint64_t
      delta,\n                                uint64_t initial,\n                                uint32_t
      exp)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/testapp.c:1234,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1235,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1236,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1237,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1238,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1252,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1263,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1264,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1265,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1266,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1272,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1273,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1274,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1275,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1280,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1281,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1282,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1283,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1287,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1289,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1293,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1294,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1295,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1296,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1303,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1304,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1305,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1312,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1313,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1314,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1322,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1323,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1326,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 85
    argCount: 3
    argNames:
    - response
    - cmd
    - status
    argTypes:
    - protocol_binary_response_no_extras*
    - uint8_t
    - uint16_t
    assertStmts:
    - condition: (response->message.header.response.status == status)
      pos:
        line_end: 1236
        line_start: 1236
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.keylen == 0)
      pos:
        line_end: 1271
        line_start: 1271
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas == 0)
      pos:
        line_end: 1288
        line_start: 1288
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.keylen == 0)
      pos:
        line_end: 1292
        line_start: 1292
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 4)
      pos:
        line_end: 1303
        line_start: 1303
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas != 0)
      pos:
        line_end: 1304
        line_start: 1304
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.datatype == PROTOCOL_BINARY_RAW_BYTES)
      pos:
        line_end: 1235
        line_start: 1235
        source_file: /src/memcached/testapp.c
    - condition: ("Quiet command shouldn't return on success" == NULL)
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.keylen == 0)
      pos:
        line_end: 1262
        line_start: 1262
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas == 0)
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.bodylen == 0)
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.keylen == 0)
      pos:
        line_end: 1279
        line_start: 1279
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 0)
      pos:
        line_end: 1272
        line_start: 1272
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 0)
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.bodylen != 0)
      pos:
        line_end: 1294
        line_start: 1294
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas == 0)
      pos:
        line_end: 1295
        line_start: 1295
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas != 0)
      pos:
        line_end: 1313
        line_start: 1313
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.magic == PROTOCOL_BINARY_RES)
      pos:
        line_end: 1233
        line_start: 1233
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.opcode == cmd)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 0)
      pos:
        line_end: 1263
        line_start: 1263
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.bodylen == 0)
      pos:
        line_end: 1264
        line_start: 1264
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas != 0)
      pos:
        line_end: 1265
        line_start: 1265
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas != 0)
      pos:
        line_end: 1282
        line_start: 1282
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.bodylen == 8)
      pos:
        line_end: 1281
        line_start: 1281
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 0)
      pos:
        line_end: 1280
        line_start: 1280
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.keylen != 0)
      pos:
        line_end: 1311
        line_start: 1311
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.opaque == 0xdeadbeef)
      pos:
        line_end: 1237
        line_start: 1237
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 0)
      pos:
        line_end: 1286
        line_start: 1286
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.keylen == 0)
      pos:
        line_end: 1302
        line_start: 1302
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 4)
      pos:
        line_end: 1312
        line_start: 1312
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.cas == 0)
      pos:
        line_end: 1321
        line_start: 1321
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.extlen == 0)
      pos:
        line_end: 1322
        line_start: 1322
        source_file: /src/memcached/testapp.c
    - condition: (response->message.header.response.keylen == 0)
      pos:
        line_end: 1325
        line_start: 1325
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1329
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1329
    functionName: validate_response_header
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void validate_response_header(protocol_binary_response_no_extras *response,\n
      \                                    uint8_t cmd, uint16_t status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1338,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1342,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1343,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1331
    functionDepth: 3
    functionLinenumber: 1331
    functionLinenumberEnd: 1348
    functionName: test_binary_noop
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - raw_command
    - validate_response_header
    - safe_send
    - safe_recv_packet
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_noop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1356,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1359,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1361,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1362,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1367,1
    - Dst: read
      Src: /src/memcached/testapp.c:1367,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:1368,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:1369,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - uint8_t
    assertStmts:
    - condition: (con->read(con, buffer.bytes, sizeof(buffer.bytes)) == 0)
      pos:
        line_end: 1366
        line_start: 1366
        source_file: /src/memcached/testapp.c
    - condition: (con)
      pos:
        line_end: 1369
        line_start: 1369
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1373
      start: 1350
    functionDepth: 3
    functionLinenumber: 1350
    functionLinenumberEnd: 1373
    functionName: test_binary_quit_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - safe_recv_packet
    - close_conn
    - connect_server
    - raw_command
    - validate_response_header
    - assert
    - safe_send
    - read
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_quit_impl(uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_quit_impl
      Src: /src/memcached/testapp.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1375
    functionDepth: 4
    functionLinenumber: 1375
    functionLinenumberEnd: 1377
    functionName: test_binary_quit
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_quit_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_quit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_quit_impl
      Src: /src/memcached/testapp.c:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1379
    functionDepth: 4
    functionLinenumber: 1379
    functionLinenumberEnd: 1381
    functionName: test_binary_quitq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_quit_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_quitq(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1390,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1391,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1397,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1399,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1400,1
    - Dst: test_binary_noop
      Src: /src/memcached/testapp.c:1406,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1410,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1412,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1413,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1415,1
    - Dst: test_binary_noop
      Src: /src/memcached/testapp.c:1417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts:
    - condition: (receive.response.message.header.response.cas != send.request.message.header.request.cas)
      pos:
        line_end: 1414
        line_start: 1414
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1421
      start: 1383
    functionDepth: 4
    functionLinenumber: 1383
    functionLinenumberEnd: 1421
    functionName: test_binary_set_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_noop
    - storage_command
    - safe_recv_packet
    - strlen
    - validate_response_header
    - assert
    - safe_send
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_set_impl(const char *key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_set_impl
      Src: /src/memcached/testapp.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1423
    functionDepth: 5
    functionLinenumber: 1423
    functionLinenumberEnd: 1425
    functionName: test_binary_set
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_set_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_set(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_set_impl
      Src: /src/memcached/testapp.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1427
    functionDepth: 5
    functionLinenumber: 1427
    functionLinenumberEnd: 1429
    functionName: test_binary_setq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_set_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_setq(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1439,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1440,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1446,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1449,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1450,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1454,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1432
    functionDepth: 3
    functionLinenumber: 1432
    functionLinenumberEnd: 1461
    functionName: test_binary_add_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - storage_command
    - safe_recv_packet
    - strlen
    - validate_response_header
    - safe_send
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_add_impl(const char *key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_add_impl
      Src: /src/memcached/testapp.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1463
    functionDepth: 4
    functionLinenumber: 1463
    functionLinenumberEnd: 1465
    functionName: test_binary_add
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_add_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_add_impl
      Src: /src/memcached/testapp.c:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1467
    functionDepth: 4
    functionLinenumber: 1467
    functionLinenumberEnd: 1469
    functionName: test_binary_addq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_add_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_addq(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1478,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1479,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1481,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1482,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1483,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1485,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1487,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1488,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1489,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1490,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1493,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1494,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1497,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1499,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1500,1
    - Dst: test_binary_noop
      Src: /src/memcached/testapp.c:1507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1471
    functionDepth: 4
    functionLinenumber: 1471
    functionLinenumberEnd: 1511
    functionName: test_binary_replace_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_noop
    - storage_command
    - safe_recv_packet
    - strlen
    - validate_response_header
    - safe_send
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_replace_impl(const char* key, uint8_t
      cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_replace_impl
      Src: /src/memcached/testapp.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1513
    functionDepth: 5
    functionLinenumber: 1513
    functionLinenumberEnd: 1516
    functionName: test_binary_replace
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_replace_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_replace_impl
      Src: /src/memcached/testapp.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1518
    functionDepth: 5
    functionLinenumber: 1518
    functionLinenumberEnd: 1521
    functionName: test_binary_replaceq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_replace_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_replaceq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1529,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1530,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1532,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1533,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1534,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1536,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1538,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1539,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1540,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1541,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1544,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1545,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1546,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1549,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1550,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1554,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1555,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1523
    functionDepth: 3
    functionLinenumber: 1523
    functionLinenumberEnd: 1560
    functionName: test_binary_delete_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - storage_command
    - safe_recv_packet
    - raw_command
    - strlen
    - validate_response_header
    - safe_send
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_delete_impl(const char *key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_delete_impl
      Src: /src/memcached/testapp.c:1563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1562
    functionDepth: 4
    functionLinenumber: 1562
    functionLinenumberEnd: 1565
    functionName: test_binary_delete
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_delete_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_delete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_delete_impl
      Src: /src/memcached/testapp.c:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1567
    functionDepth: 4
    functionLinenumber: 1567
    functionLinenumberEnd: 1570
    functionName: test_binary_deleteq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_delete_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_deleteq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/memcached/testapp.c:1579,1
    - Dst: ext_command
      Src: /src/memcached/testapp.c:1584,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1586,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1588,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1589,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1590,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1593,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1595,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1597,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1598,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1599,1
    - Dst: ext_command
      Src: /src/memcached/testapp.c:1610,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1612,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1613,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1617,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1619,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1572
    functionDepth: 3
    functionLinenumber: 1572
    functionLinenumberEnd: 1625
    functionName: test_binary_get_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - storage_command
    - safe_recv_packet
    - htonl
    - strlen
    - validate_response_header
    - safe_send
    - ext_command
    - memcpy
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_get_impl(const char *key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_get_impl
      Src: /src/memcached/testapp.c:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1627
    functionDepth: 4
    functionLinenumber: 1627
    functionLinenumberEnd: 1629
    functionName: test_binary_get
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_get_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_get_impl
      Src: /src/memcached/testapp.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1631
    functionDepth: 4
    functionLinenumber: 1631
    functionLinenumberEnd: 1633
    functionName: test_binary_getk
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_get_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_getk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_get_impl
      Src: /src/memcached/testapp.c:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1635
    functionDepth: 4
    functionLinenumber: 1635
    functionLinenumberEnd: 1637
    functionName: test_binary_gat
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_get_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_gat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_get_impl
      Src: /src/memcached/testapp.c:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1641
    functionName: test_binary_gatk
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_get_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_gatk(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/memcached/testapp.c:1651,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1656,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1658,1
    - Dst: ext_command
      Src: /src/memcached/testapp.c:1660,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1662,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1666,1
    - Dst: ext_command
      Src: /src/memcached/testapp.c:1669,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1671,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:1672,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1675,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1676,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1677,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1680,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1685
    functionName: test_binary_getq_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - storage_command
    - safe_recv_packet
    - htonl
    - strlen
    - validate_response_header
    - safe_send
    - ext_command
    - memcpy
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_getq_impl(const char *key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_getq_impl
      Src: /src/memcached/testapp.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1687
    functionDepth: 4
    functionLinenumber: 1687
    functionLinenumberEnd: 1689
    functionName: test_binary_getq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_getq_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_getq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_getq_impl
      Src: /src/memcached/testapp.c:1692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1693
    functionName: test_binary_getkq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_getq_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_getkq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_getq_impl
      Src: /src/memcached/testapp.c:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1695
    functionDepth: 4
    functionLinenumber: 1695
    functionLinenumberEnd: 1697
    functionName: test_binary_gatq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_getq_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_gatq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_getq_impl
      Src: /src/memcached/testapp.c:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1699
    functionDepth: 4
    functionLinenumber: 1699
    functionLinenumberEnd: 1701
    functionName: test_binary_gatkq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_getq_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_gatkq(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arithmetic_command
      Src: /src/memcached/testapp.c:1710,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1711,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1715,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1717,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1718,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1720,1
    - Dst: ntohll
      Src: /src/memcached/testapp.c:1720,1
    - Dst: test_binary_noop
      Src: /src/memcached/testapp.c:1725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts:
    - condition: (ntohll(receive.response.message.body.value) == ii)
      pos:
        line_end: 1719
        line_start: 1719
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1728
      start: 1703
    functionDepth: 4
    functionLinenumber: 1703
    functionLinenumberEnd: 1728
    functionName: test_binary_incr_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_noop
    - arithmetic_command
    - safe_recv_packet
    - strlen
    - validate_response_header
    - assert
    - safe_send
    - ntohll
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_incr_impl(const char* key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_incr_impl
      Src: /src/memcached/testapp.c:1731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 5
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: test_binary_incr
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_incr_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_incr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_incr_impl
      Src: /src/memcached/testapp.c:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1735
    functionDepth: 5
    functionLinenumber: 1735
    functionLinenumberEnd: 1738
    functionName: test_binary_incrq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_incr_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_incrq(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arithmetic_command
      Src: /src/memcached/testapp.c:1747,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1748,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1752,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1754,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1755,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1757,1
    - Dst: ntohll
      Src: /src/memcached/testapp.c:1757,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1762,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1764,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1765,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1767,1
    - Dst: ntohll
      Src: /src/memcached/testapp.c:1767,1
    - Dst: test_binary_noop
      Src: /src/memcached/testapp.c:1769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts:
    - condition: (ntohll(receive.response.message.body.value) == ii)
      pos:
        line_end: 1756
        line_start: 1756
        source_file: /src/memcached/testapp.c
    - condition: (ntohll(receive.response.message.body.value) == 0)
      pos:
        line_end: 1766
        line_start: 1766
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1773
      start: 1740
    functionDepth: 4
    functionLinenumber: 1740
    functionLinenumberEnd: 1773
    functionName: test_binary_decr_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_noop
    - arithmetic_command
    - safe_recv_packet
    - strlen
    - validate_response_header
    - assert
    - safe_send
    - ntohll
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_decr_impl(const char* key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_decr_impl
      Src: /src/memcached/testapp.c:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1775
    functionDepth: 5
    functionLinenumber: 1775
    functionLinenumberEnd: 1778
    functionName: test_binary_decr
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_decr_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_decr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_decr_impl
      Src: /src/memcached/testapp.c:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1780
    functionDepth: 5
    functionLinenumber: 1780
    functionLinenumberEnd: 1783
    functionName: test_binary_decrq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_decr_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_decrq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1792,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1796,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1797,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1785
    functionDepth: 3
    functionLinenumber: 1785
    functionLinenumberEnd: 1802
    functionName: test_binary_version
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - raw_command
    - validate_response_header
    - safe_send
    - safe_recv_packet
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_version(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1811,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1813,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1814,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1815,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1816,1
    - Dst: flush_command
      Src: /src/memcached/testapp.c:1819,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1820,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1822,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1823,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1827,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1828,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1829,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1830,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1831,1
    - Dst: sleep
      Src: /src/memcached/testapp.c:1834,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1835,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1836,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1837,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1842,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1844,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1845,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1846,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1847,1
    - Dst: flush_command
      Src: /src/memcached/testapp.c:1850,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1851,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1853,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1854,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1858,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1860,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1861,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1862,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1804
    functionDepth: 3
    functionLinenumber: 1804
    functionLinenumberEnd: 1868
    functionName: test_binary_flush_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - storage_command
    - safe_recv_packet
    - flush_command
    - raw_command
    - strlen
    - validate_response_header
    - safe_send
    - sleep
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_flush_impl(const char *key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_flush_impl
      Src: /src/memcached/testapp.c:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1870
    functionDepth: 4
    functionLinenumber: 1870
    functionLinenumberEnd: 1873
    functionName: test_binary_flush
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_flush_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_flush(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_flush_impl
      Src: /src/memcached/testapp.c:1876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1875
    functionDepth: 4
    functionLinenumber: 1875
    functionLinenumberEnd: 1878
    functionName: test_binary_flushq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_flush_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_flushq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1888,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1889,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1889,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1892,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1893,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1894,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:1897,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1899,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1899,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1900,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1901,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1902,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1905,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1906,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1906,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1907,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1910,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1911,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1914,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1916,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1917,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1918,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1922,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1923,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1925,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1926,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1927,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1930,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1930,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1931,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1931,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1931,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1937,1
    - Dst: memcmp
      Src: /src/memcached/testapp.c:1937,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1937,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1938,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1939,1
    - Dst: memcmp
      Src: /src/memcached/testapp.c:1939,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1939,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1940,1
    - Dst: assert
      Src: /src/memcached/testapp.c:1941,1
    - Dst: memcmp
      Src: /src/memcached/testapp.c:1941,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:1941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 2
    argNames:
    - key
    - cmd
    argTypes:
    - char*
    - uint8_t
    assertStmts:
    - condition: (memcmp(ptr, key, strlen(key)) == 0)
      pos:
        line_end: 1936
        line_start: 1936
        source_file: /src/memcached/testapp.c
    - condition: (memcmp(ptr, value, strlen(value)) == 0)
      pos:
        line_end: 1938
        line_start: 1938
        source_file: /src/memcached/testapp.c
    - condition: (memcmp(ptr, value, strlen(value)) == 0)
      pos:
        line_end: 1940
        line_start: 1940
        source_file: /src/memcached/testapp.c
    - condition: (receive.response.message.header.response.keylen == strlen(key))
      pos:
        line_end: 1929
        line_start: 1929
        source_file: /src/memcached/testapp.c
    - condition: (receive.response.message.header.response.bodylen == (strlen(key)
        + 2*strlen(value) + 4))
      pos:
        line_end: 1930
        line_start: 1930
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 1944
      start: 1880
    functionDepth: 3
    functionLinenumber: 1880
    functionLinenumberEnd: 1944
    functionName: test_binary_concat_impl
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - storage_command
    - safe_recv_packet
    - memcmp
    - raw_command
    - strlen
    - validate_response_header
    - assert
    - safe_send
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_concat_impl(const char *key, uint8_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_concat_impl
      Src: /src/memcached/testapp.c:1947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1946
    functionDepth: 4
    functionLinenumber: 1946
    functionLinenumberEnd: 1949
    functionName: test_binary_append
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_concat_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_concat_impl
      Src: /src/memcached/testapp.c:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1951
    functionDepth: 4
    functionLinenumber: 1951
    functionLinenumberEnd: 1954
    functionName: test_binary_prepend
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_concat_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_prepend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_concat_impl
      Src: /src/memcached/testapp.c:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1956
    functionDepth: 4
    functionLinenumber: 1956
    functionLinenumberEnd: 1959
    functionName: test_binary_appendq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_concat_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_appendq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_binary_concat_impl
      Src: /src/memcached/testapp.c:1962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1961
    functionDepth: 4
    functionLinenumber: 1961
    functionLinenumberEnd: 1964
    functionName: test_binary_prependq
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - test_binary_concat_impl
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_prependq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1973,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1977,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1979,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1966
    functionDepth: 3
    functionLinenumber: 1966
    functionLinenumberEnd: 1985
    functionName: test_binary_stat
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - raw_command
    - validate_response_header
    - safe_send
    - safe_recv_packet
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_stat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_command
      Src: /src/memcached/testapp.c:1995,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:1997,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:1998,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:1999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1987
    functionDepth: 3
    functionLinenumber: 1987
    functionLinenumberEnd: 2005
    functionName: test_binary_illegal
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - raw_command
    - validate_response_header
    - safe_send
    - safe_recv_packet
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_illegal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/testapp.c:2010,1
    - Dst: safe_recv_packet
      Src: /src/memcached/testapp.c:2012,1
    - Dst: validate_response_header
      Src: /src/memcached/testapp.c:2014,1
    - Dst: free
      Src: /src/memcached/testapp.c:2018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2009
    functionDepth: 3
    functionLinenumber: 2009
    functionLinenumberEnd: 2023
    functionName: binary_hickup_recv_verification_thread
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - validate_response_header
    - safe_recv_packet
    linkageType: ''
    returnType: void
    signature: void *binary_hickup_recv_verification_thread(void *arg)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/memcached/testapp.c:2036,1
    - Dst: rand
      Src: /src/memcached/testapp.c:2038,1
    - Dst: storage_command
      Src: /src/memcached/testapp.c:2047,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2055,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2060,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2064,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2069,1
    - Dst: arithmetic_command
      Src: /src/memcached/testapp.c:2076,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2080,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2088,1
    - Dst: touch_command
      Src: /src/memcached/testapp.c:2097,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2102,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2117,1
    - Dst: memcpy
      Src: /src/memcached/testapp.c:2122,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:2128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 71
    argCount: 2
    argNames:
    - buffer
    - buffersize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2025
    functionDepth: 2
    functionLinenumber: 2025
    functionLinenumberEnd: 2131
    functionName: test_binary_pipeline_hickup_chunk
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - arithmetic_command
    - storage_command
    - raw_command
    - touch_command
    - rand
    - safe_send
    - memcpy
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_pipeline_hickup_chunk(void *buffer, size_t
      buffersize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/testapp.c:2136,1
    - Dst: pthread_create
      Src: /src/memcached/testapp.c:2143,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:2145,1
    - Dst: strerror
      Src: /src/memcached/testapp.c:2145,1
    - Dst: free
      Src: /src/memcached/testapp.c:2146,1
    - Dst: usleep
      Src: /src/memcached/testapp.c:2151,1
    - Dst: srand
      Src: /src/memcached/testapp.c:2153,1
    - Dst: time
      Src: /src/memcached/testapp.c:2153,1
    - Dst: test_binary_pipeline_hickup_chunk
      Src: /src/memcached/testapp.c:2155,1
    - Dst: raw_command
      Src: /src/memcached/testapp.c:2159,1
    - Dst: safe_send
      Src: /src/memcached/testapp.c:2161,1
    - Dst: pthread_join
      Src: /src/memcached/testapp.c:2163,1
    - Dst: free
      Src: /src/memcached/testapp.c:2164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2133
    functionDepth: 3
    functionLinenumber: 2133
    functionLinenumberEnd: 2166
    functionName: test_binary_pipeline_hickup
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - free
    - fprintf
    - test_binary_pipeline_hickup_chunk
    - time
    - malloc
    - usleep
    - pthread_create
    - raw_command
    - strerror
    - srand
    - safe_send
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_binary_pipeline_hickup(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/memcached/testapp.c:2176,1
    - Dst: strlen
      Src: /src/memcached/testapp.c:2181,1
    - Dst: start_server
      Src: /src/memcached/testapp.c:2183,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:2187,1
    - Dst: assert
      Src: /src/memcached/testapp.c:2188,1
    - Dst: assert
      Src: /src/memcached/testapp.c:2189,1
    - Dst: write
      Src: /src/memcached/testapp.c:2196,1
    - Dst: fork
      Src: /src/memcached/testapp.c:2213,1
    - Dst: abort
      Src: /src/memcached/testapp.c:2215,1
    - Dst: waitpid
      Src: /src/memcached/testapp.c:2219,1
    - Dst: assert
      Src: /src/memcached/testapp.c:2220,1
    - Dst: assert
      Src: /src/memcached/testapp.c:2221,1
    - Dst: connect_server
      Src: /src/memcached/testapp.c:2223,1
    - Dst: assert
      Src: /src/memcached/testapp.c:2224,1
    - Dst: test_binary_noop
      Src: /src/memcached/testapp.c:2225,1
    - Dst: close_conn
      Src: /src/memcached/testapp.c:2226,1
    - Dst: exit
      Src: /src/memcached/testapp.c:2227,1
    - Dst: SSL_shutdown
      Src: /src/memcached/testapp.c:2237,1
    - Dst: SSL_free
      Src: /src/memcached/testapp.c:2238,1
    - Dst: SSL_CTX_free
      Src: /src/memcached/testapp.c:2241,1
    - Dst: close
      Src: /src/memcached/testapp.c:2243,1
    - Dst: free
      Src: /src/memcached/testapp.c:2244,1
    - Dst: assert
      Src: /src/memcached/testapp.c:2248,1
    - Dst: kill
      Src: /src/memcached/testapp.c:2248,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (conns[ii]->sock > 0)
      pos:
        line_end: 2188
        line_start: 2188
        source_file: /src/memcached/testapp.c
    - condition: (stat == 0)
      pos:
        line_end: 2220
        line_start: 2220
        source_file: /src/memcached/testapp.c
    - condition: (con)
      pos:
        line_end: 2223
        line_start: 2223
        source_file: /src/memcached/testapp.c
    - condition: (c == child)
      pos:
        line_end: 2219
        line_start: 2219
        source_file: /src/memcached/testapp.c
    - condition: (conns[ii])
      pos:
        line_end: 2187
        line_start: 2187
        source_file: /src/memcached/testapp.c
    - condition: (kill(server_pid, SIGTERM) == 0)
      pos:
        line_end: 2247
        line_start: 2247
        source_file: /src/memcached/testapp.c
    constantsTouched: []
    func_position:
      end: 2251
      start: 2169
    functionDepth: 4
    functionLinenumber: 2169
    functionLinenumberEnd: 2251
    functionName: test_issue_101
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - write
    - test_binary_noop
    - free
    - kill
    - getenv
    - connect_server
    - fork
    - close_conn
    - SSL_CTX_free
    - exit
    - strlen
    - SSL_free
    - assert
    - abort
    - waitpid
    - SSL_shutdown
    - close
    - start_server
    linkageType: ''
    returnType: enum test_return
    signature: enum test_return test_issue_101(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2323
    functionDepth: 0
    functionLinenumber: 2323
    functionLinenumberEnd: 2324
    functionName: STATS_LOCK
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STATS_LOCK(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2326
    functionName: STATS_UNLOCK
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STATS_UNLOCK(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/memcached/testapp.c:2333,1
    - Dst: SSLeay_add_ssl_algorithms
      Src: /src/memcached/testapp.c:2334,1
    - Dst: SSL_load_error_strings
      Src: /src/memcached/testapp.c:2335,1
    - Dst: stats_prefix_init
      Src: /src/memcached/testapp.c:2342,1
    - Dst: crc32c_init
      Src: /src/memcached/testapp.c:2344,1
    - Dst: printf
      Src: /src/memcached/testapp.c:2350,1
    - Dst: fflush
      Src: /src/memcached/testapp.c:2353,1
    - Dst: alarm
      Src: /src/memcached/testapp.c:2356,1
    - Dst: function
      Src: /src/memcached/testapp.c:2358,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:2360,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:2362,1
    - Dst: fprintf
      Src: /src/memcached/testapp.c:2364,1
    - Dst: fflush
      Src: /src/memcached/testapp.c:2367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2371
    functionName: main
    functionSourceFile: /src/memcached/testapp.c
    functionUses: 0
    functionsReached:
    - printf
    - alarm
    - fprintf
    - crc32c_init
    - fflush
    - getenv
    - SSLeay_add_ssl_algorithms
    - stats_prefix_init
    - SSL_load_error_strings
    - function
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: slabs_clsid
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int slabs_clsid(const size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clsid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: slabs_size
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int slabs_size(const int clsid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/memcached/slabs.c:104,1
    - Dst: fgets
      Src: /src/memcached/slabs.c:108,1
    - Dst: strncmp
      Src: /src/memcached/slabs.c:109,1
    - Dst: sscanf
      Src: /src/memcached/slabs.c:110,1
    - Dst: fclose
      Src: /src/memcached/slabs.c:115,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:119,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:124,1
    - Dst: posix_memalign
      Src: /src/memcached/slabs.c:128,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:130,1
    - Dst: madvise
      Src: /src/memcached/slabs.c:134,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:136,1
    - Dst: free
      Src: /src/memcached/slabs.c:137,1
    - Dst: __builtin_clzl
      Src: /src/memcached/slabs.c:141,1
    - Dst: mmap
      Src: /src/memcached/slabs.c:142,1
    - Dst: MAP_ALIGNED
      Src: /src/memcached/slabs.c:142,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:144,1
    - Dst: malloc
      Src: /src/memcached/slabs.c:148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 151
    functionName: alloc_large_chunk
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - fopen
    - fclose
    - fprintf
    - free
    - strncmp
    - malloc
    - sscanf
    - fgets
    - posix_memalign
    - MAP_ALIGNED
    - __builtin_clzl
    - madvise
    - mmap
    linkageType: ''
    returnType: void
    signature: void * alloc_large_chunk(const size_t limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_clsid
      Src: /src/memcached/slabs.c:156,1
    - Dst: do_grow_slab_list
      Src: /src/memcached/slabs.c:163,1
    - Dst: do_grow_slab_list
      Src: /src/memcached/slabs.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - chunk
    - border
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 189
    functionName: slabs_fixup
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - ITEM_clsid
    - do_grow_slab_list
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int slabs_fixup(char *chunk, const int border)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: alloc_large_chunk
      Src: /src/memcached/slabs.c:208,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:214,1
    - Dst: memset
      Src: /src/memcached/slabs.c:234,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:253,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:262,1
    - Dst: getenv
      Src: /src/memcached/slabs.c:268,1
    - Dst: safe_strtoll
      Src: /src/memcached/slabs.c:271,1
    - Dst: slabs_preallocate
      Src: /src/memcached/slabs.c:280,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 6
    argNames:
    - limit
    - factor
    - prealloc
    - slab_sizes
    - mem_base_external
    - reuse_mem
    argTypes:
    - size_t
    - double
    - bool
    - uint32_t*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 283
    functionName: slabs_init
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - fprintf
    - alloc_large_chunk
    - getenv
    - safe_strtoll
    - slabs_preallocate
    - memset
    linkageType: ''
    returnType: void
    signature: void slabs_init(const size_t limit, const double factor, const bool
      prealloc, const uint32_t *slab_sizes, void *mem_base_external, bool reuse_mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memory_allocate
      Src: /src/memcached/slabs.c:291,1
    - Dst: do_grow_slab_list
      Src: /src/memcached/slabs.c:292,1
    - Dst: memset
      Src: /src/memcached/slabs.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: slabs_prefill_global
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - memset
    - memory_allocate
    - do_grow_slab_list
    linkageType: ''
    returnType: void
    signature: void slabs_prefill_global(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_slabs_newslab
      Src: /src/memcached/slabs.c:315,1
    - Dst: fprintf
      Src: /src/memcached/slabs.c:316,1
    - Dst: exit
      Src: /src/memcached/slabs.c:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - maxslabs
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 322
    functionName: slabs_preallocate
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    - do_slabs_newslab
    linkageType: ''
    returnType: void
    signature: void slabs_preallocate(const unsigned int maxslabs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/memcached/slabs.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: do_grow_slab_list
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 2
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int do_grow_slab_list(const unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:341,1
    - Dst: do_grow_slab_list
      Src: /src/memcached/slabs.c:342,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: slabs_grow_slab_list
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - do_grow_slab_list
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int slabs_grow_slab_list(const unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_slabs_free
      Src: /src/memcached/slabs.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - id
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: split_slab_page_into_freelist
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - do_slabs_free
    linkageType: ''
    returnType: void
    signature: void split_slab_page_into_freelist(char *ptr, const unsigned int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: get_page_from_global_pool
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *get_page_from_global_pool(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED
      Src: /src/memcached/slabs.c:378,1
    - Dst: do_grow_slab_list
      Src: /src/memcached/slabs.c:382,1
    - Dst: get_page_from_global_pool
      Src: /src/memcached/slabs.c:383,1
    - Dst: memory_allocate
      Src: /src/memcached/slabs.c:384,1
    - Dst: MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED
      Src: /src/memcached/slabs.c:386,1
    - Dst: memset
      Src: /src/memcached/slabs.c:394,1
    - Dst: split_slab_page_into_freelist
      Src: /src/memcached/slabs.c:395,1
    - Dst: MEMCACHED_SLABS_SLABCLASS_ALLOCATE
      Src: /src/memcached/slabs.c:398,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 401
    functionName: do_slabs_newslab
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 1
    functionsReached:
    - MEMCACHED_SLABS_SLABCLASS_ALLOCATE
    - do_grow_slab_list
    - memory_allocate
    - split_slab_page_into_freelist
    - get_page_from_global_pool
    - MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED
    - memset
    linkageType: ''
    returnType: int
    signature: int do_slabs_newslab(const unsigned int id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_SLABS_ALLOCATE_FAILED
      Src: /src/memcached/slabs.c:411,1
    - Dst: assert
      Src: /src/memcached/slabs.c:415,1
    - Dst: do_slabs_newslab
      Src: /src/memcached/slabs.c:420,1
    - Dst: MEMCACHED_SLABS_ALLOCATE
      Src: /src/memcached/slabs.c:439,1
    - Dst: MEMCACHED_SLABS_ALLOCATE_FAILED
      Src: /src/memcached/slabs.c:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (p->sl_curr == 0 || (((item *)p->slots)->it_flags & ITEM_SLABBED))
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/memcached/slabs.c
    constantsTouched: []
    func_position:
      end: 445
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 445
    functionName: do_slabs_alloc
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - MEMCACHED_SLABS_ALLOCATE
    - MEMCACHED_SLABS_ALLOCATE_FAILED
    - assert
    - do_slabs_newslab
    linkageType: ''
    returnType: void
    signature: "void *do_slabs_alloc(unsigned int id,\n        unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_schunk
      Src: /src/memcached/slabs.c:448,1
    - Dst: assert
      Src: /src/memcached/slabs.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: (chunk->it_flags == ITEM_CHUNK)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/memcached/slabs.c
    constantsTouched: []
    func_position:
      end: 492
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 492
    functionName: do_slabs_free_chunked
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - assert
    linkageType: ''
    returnType: void
    signature: void do_slabs_free_chunked(item *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/slabs.c:498,1
    - Dst: MEMCACHED_SLABS_FREE
      Src: /src/memcached/slabs.c:502,1
    - Dst: do_slabs_free_chunked
      Src: /src/memcached/slabs.c:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ptr
    - id
    argTypes:
    - void*
    - unsigned int
    assertStmts:
    - condition: (id >= POWER_SMALLEST && id <= power_largest)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/memcached/slabs.c
    constantsTouched: []
    func_position:
      end: 519
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 519
    functionName: do_slabs_free
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 1
    functionsReached:
    - assert
    - do_slabs_free_chunked
    - MEMCACHED_SLABS_FREE
    linkageType: ''
    returnType: void
    signature: void do_slabs_free(void *ptr, unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:526,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - am
    argTypes:
    - slab_stats_automove*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 536
    functionName: fill_slab_stats_automove
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void fill_slab_stats_automove(slab_stats_automove *am)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:543,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mem_flag
    argTypes:
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: global_page_pool_size
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int global_page_pool_size(bool *mem_flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: threadlocal_stats_aggregate
      Src: /src/memcached/slabs.c:556,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:570,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:571,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:572,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:573,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:574,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:576,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:578,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:579,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:581,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:583,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:585,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:587,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:589,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:591,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/slabs.c:593,1
    - Dst: APPEND_STAT
      Src: /src/memcached/slabs.c:601,1
    - Dst: APPEND_STAT
      Src: /src/memcached/slabs.c:602,1
    - Dst: add_stats
      Src: /src/memcached/slabs.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 604
    functionName: do_slabs_stats
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - add_stats
    - threadlocal_stats_aggregate
    - APPEND_NUM_STAT
    - APPEND_STAT
    linkageType: ''
    returnType: void
    signature: void do_slabs_stats(ADD_STAT add_stats, void *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/slabs.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 634
    functionName: memory_allocate
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 2
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *memory_allocate(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_global_pool
      Src: /src/memcached/slabs.c:646,1
    - Dst: free
      Src: /src/memcached/slabs.c:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 650
    functionName: memory_release
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - get_page_from_global_pool
    - free
    linkageType: ''
    returnType: void
    signature: void memory_release(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:655,1
    - Dst: do_slabs_alloc
      Src: /src/memcached/slabs.c:656,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 659
    functionName: slabs_alloc
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - do_slabs_alloc
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void *slabs_alloc(unsigned int id, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:662,1
    - Dst: do_slabs_free
      Src: /src/memcached/slabs.c:663,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - id
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: slabs_free
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - do_slabs_free
    linkageType: ''
    returnType: void
    signature: void slabs_free(void *ptr, unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:668,1
    - Dst: do_slabs_stats
      Src: /src/memcached/slabs.c:669,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: slabs_stats
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - do_slabs_stats
    linkageType: ''
    returnType: void
    signature: void slabs_stats(ADD_STAT add_stats, void *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_release
      Src: /src/memcached/slabs.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - new_mem_limit
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: do_slabs_adjust_mem_limit
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - memory_release
    linkageType: ''
    returnType: bool
    signature: bool do_slabs_adjust_mem_limit(size_t new_mem_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:686,1
    - Dst: do_slabs_adjust_mem_limit
      Src: /src/memcached/slabs.c:687,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - new_mem_limit
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: slabs_adjust_mem_limit
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 1
    functionsReached:
    - do_slabs_adjust_mem_limit
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: bool
    signature: bool slabs_adjust_mem_limit(size_t new_mem_limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:697,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - id
    - mem_flag
    - chunks_perslab
    argTypes:
    - unsigned int
    - bool*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 706
    functionName: slabs_available_chunks
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int slabs_available_chunks(const unsigned int id, bool *mem_flag,\n
      \       unsigned int *chunks_perslab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:714,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:717,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - id
    - size
    - perslab
    argTypes:
    - unsigned int
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 728
    functionName: slabs_peek_page
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void *slabs_peek_page(const unsigned int id, uint32_t *size, uint32_t
      *perslab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/slabs.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - id
    - it
    argTypes:
    - unsigned int
    - item*
    assertStmts:
    - condition: (it->it_flags == ITEM_SLABBED)
      pos:
        line_end: 736
        line_start: 736
        source_file: /src/memcached/slabs.c
    constantsTouched: []
    func_position:
      end: 744
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 744
    functionName: do_slabs_unlink_free_chunk
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void do_slabs_unlink_free_chunk(const unsigned int id, item *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:747,1
    - Dst: do_grow_slab_list
      Src: /src/memcached/slabs.c:761,1
    - Dst: memset
      Src: /src/memcached/slabs.c:765,1
    - Dst: split_slab_page_into_freelist
      Src: /src/memcached/slabs.c:766,1
    - Dst: memset
      Src: /src/memcached/slabs.c:769,1
    - Dst: memory_release
      Src: /src/memcached/slabs.c:772,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - sid
    - did
    - page
    argTypes:
    - unsigned int
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 776
    functionName: slabs_finalize_page_move
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - do_grow_slab_list
    - pthread_mutex_unlock
    - memory_release
    - pthread_mutex_lock
    - split_slab_page_into_freelist
    - memset
    linkageType: ''
    returnType: void
    signature: void slabs_finalize_page_move(const unsigned int sid, const unsigned
      int did, void *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:782,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:792,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:796,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - did
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 798
    functionName: slabs_pick_any_for_reassign
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int slabs_pick_any_for_reassign(const unsigned int did)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:802,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 806
    functionName: slabs_page_count
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int slabs_page_count(const unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:810,1
    - Dst: cb
      Src: /src/memcached/slabs.c:811,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - slabs_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 815
    functionName: slabs_locked_callback
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - cb
    linkageType: ''
    returnType: int
    signature: int slabs_locked_callback(slabs_cb cb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: slabs_mlock
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void slabs_mlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: slabs_munlock
    functionSourceFile: /src/memcached/slabs.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void slabs_munlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: ITEM_get_cas
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_get_cas(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: ITEM_set_cas
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_set_cas(i,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: ITEM_key
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_key(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: ITEM_suffix
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_suffix(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: ITEM_data
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_data(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: ITEM_ntotal
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_ntotal(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: ITEM_clsid
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_clsid(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: ITEM_lruid
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_lruid(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - fmt
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: APPEND_STAT
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_STAT(name, fmt, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name_fmt
    - ','
    - num
    - ','
    - name
    - ','
    - fmt
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: APPEND_NUM_FMT_STAT
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_NUM_FMT_STAT(name_fmt, num, name, fmt, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - num
    - ','
    - name
    - ','
    - fmt
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: APPEND_NUM_STAT
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_NUM_STAT(num, name, fmt, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - it
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: FLAGS_CONV
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_CONV(it, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: FLAGS_SIZE
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_SIZE(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: IS_TCP
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TCP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: IS_UDP
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_UDP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: X
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: X
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 669
    functionName: ITEM_schunk
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ITEM_schunk(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: ITEM_schunk
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITEM_schunk(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - resp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 950
    functionName: conn_resp_suspend
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conn_resp_suspend(c, resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - resp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 959
    functionName: conn_resp_unsuspend
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conn_resp_unsuspend(c, resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 967
    functionName: mutex_lock
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_lock(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 968
    functionName: mutex_trylock
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_trylock(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 969
    functionName: mutex_unlock
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_unlock(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - it
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1022
    functionName: refcount_incr
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: refcount_incr(it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - it
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1023
    functionName: refcount_decr
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: refcount_decr(it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1026
    functionName: THR_STATS_LOCK
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THR_STATS_LOCK(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1027
    functionName: THR_STATS_UNLOCK
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THR_STATS_UNLOCK(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exptime
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1047
    functionName: EXPTIME_TO_POSITIVE_TIME
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPTIME_TO_POSITIVE_TIME(exptime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - expected_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1092
    functionName: __builtin_expect
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __builtin_expect(x, expected_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1095
    functionName: likely
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1096
    functionName: unlikely
    functionSourceFile: /src/memcached/memcached.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/slab_automove_extstore.c:44,1
    - Dst: calloc
      Src: /src/memcached/slab_automove_extstore.c:47,1
    - Dst: free
      Src: /src/memcached/slab_automove_extstore.c:56,1
    - Dst: free
      Src: /src/memcached/slab_automove_extstore.c:57,1
    - Dst: fill_item_stats_automove
      Src: /src/memcached/slab_automove_extstore.c:62,1
    - Dst: fill_slab_stats_automove
      Src: /src/memcached/slab_automove_extstore.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - settings
    argTypes:
    - struct settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 66
    functionName: slab_automove_extstore_init
    functionSourceFile: /src/memcached/slab_automove_extstore.c
    functionUses: 0
    functionsReached:
    - free
    - fill_item_stats_automove
    - calloc
    - fill_slab_stats_automove
    linkageType: ''
    returnType: void
    signature: void *slab_automove_extstore_init(struct settings *settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/slab_automove_extstore.c:70,1
    - Dst: free
      Src: /src/memcached/slab_automove_extstore.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: slab_automove_extstore_free
    functionSourceFile: /src/memcached/slab_automove_extstore.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void slab_automove_extstore_free(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - wd
    - w
    - size
    argTypes:
    - struct window_data*
    - struct window_data*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: window_sum
    functionSourceFile: /src/memcached/slab_automove_extstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void window_sum(struct window_data *wd, struct window_data *w,\n        uint32_t
      size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_page_pool_size
      Src: /src/memcached/slab_automove_extstore.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - count
    argTypes:
    - slab_automove*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: global_pool_check
    functionSourceFile: /src/memcached/slab_automove_extstore.c
    functionUses: 0
    functionsReached:
    - global_page_pool_size
    linkageType: ''
    returnType: int
    signature: int global_pool_check(slab_automove *a, unsigned int *count)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - slab_automove*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: memcheck
    functionSourceFile: /src/memcached/slab_automove_extstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void memcheck(slab_automove *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - class
    argTypes:
    - slab_automove*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: get_window_data
    functionSourceFile: /src/memcached/slab_automove_extstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct window_data
    signature: struct window_data *get_window_data(slab_automove *a, int class)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: global_pool_check
      Src: /src/memcached/slab_automove_extstore.c:148,1
    - Dst: fill_item_stats_automove
      Src: /src/memcached/slab_automove_extstore.c:150,1
    - Dst: fill_slab_stats_automove
      Src: /src/memcached/slab_automove_extstore.c:151,1
    - Dst: memcheck
      Src: /src/memcached/slab_automove_extstore.c:154,1
    - Dst: get_window_data
      Src: /src/memcached/slab_automove_extstore.c:160,1
    - Dst: memset
      Src: /src/memcached/slab_automove_extstore.c:162,1
    - Dst: memset
      Src: /src/memcached/slab_automove_extstore.c:197,1
    - Dst: window_sum
      Src: /src/memcached/slab_automove_extstore.c:198,1
    - Dst: STATS_LOCK
      Src: /src/memcached/slab_automove_extstore.c:232,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/slab_automove_extstore.c:234,1
    - Dst: memcpy
      Src: /src/memcached/slab_automove_extstore.c:236,1
    - Dst: memcpy
      Src: /src/memcached/slab_automove_extstore.c:238,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 3
    argNames:
    - arg
    - src
    - dst
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 251
    functionName: slab_automove_extstore_run
    functionSourceFile: /src/memcached/slab_automove_extstore.c
    functionUses: 0
    functionsReached:
    - memcpy
    - STATS_UNLOCK
    - global_pool_check
    - memcheck
    - fill_item_stats_automove
    - STATS_LOCK
    - window_sum
    - memset
    - get_window_data
    - fill_slab_stats_automove
    linkageType: ''
    returnType: void
    signature: void slab_automove_extstore_run(void *arg, int *src, int *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pr
    - token
    argTypes:
    - mcp_parser_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: _process_token_len
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _process_token_len(mcp_parser_t *pr, size_t token)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:41,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:49,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:56,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:59,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:62,1
    - Dst: out_errstring
      Src: /src/memcached/proto_text.c:65,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_text.c:74,1
    - Dst: META_KEY
      Src: /src/memcached/proto_text.c:83,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:83,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_text.c:88,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_text.c:89,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_text.c:93,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_text.c:96,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_text.c:98,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:106,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_text.c:110,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - c
    - nbytes
    - ret
    - cas
    argTypes:
    - conn*
    - int
    - enum store_item_type
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 111
    functionName: _finalize_mset
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - memcpy
    - itoa_u64
    - out_errstring
    - META_CHAR
    - itoa_u32
    - META_SPACE
    - conn_set_state
    - resp_add_iov
    - ITEM_key
    - META_KEY
    linkageType: ''
    returnType: void
    signature: void _finalize_mset(conn *c, int nbytes, enum store_item_type ret,
      uint64_t cas)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_text.c:118,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:127,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_text.c:127,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:134,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:142,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:143,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:147,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:150,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:159,1
    - Dst: store_item
      Src: /src/memcached/proto_text.c:163,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_text.c:163,1
    - Dst: MEMCACHED_COMMAND_ADD
      Src: /src/memcached/proto_text.c:169,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:169,1
    - Dst: MEMCACHED_COMMAND_REPLACE
      Src: /src/memcached/proto_text.c:173,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:173,1
    - Dst: MEMCACHED_COMMAND_APPEND
      Src: /src/memcached/proto_text.c:177,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:177,1
    - Dst: MEMCACHED_COMMAND_PREPEND
      Src: /src/memcached/proto_text.c:181,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:181,1
    - Dst: MEMCACHED_COMMAND_SET
      Src: /src/memcached/proto_text.c:185,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:185,1
    - Dst: MEMCACHED_COMMAND_CAS
      Src: /src/memcached/proto_text.c:189,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:189,1
    - Dst: _finalize_mset
      Src: /src/memcached/proto_text.c:196,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:200,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:203,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:206,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:209,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:212,1
    - Dst: item_remove
      Src: /src/memcached/proto_text.c:218,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (1 == 0)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/memcached/proto_text.c
    - condition: (ch->used != 0)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/memcached/proto_text.c
    - condition: (c != NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/memcached/proto_text.c
    - condition: (ch->used == 1)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/memcached/proto_text.c
    - condition: (ch->prev)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 220
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 220
    functionName: complete_nread_ascii
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - store_item
    - MEMCACHED_COMMAND_PREPEND
    - item_remove
    - ITEM_data
    - strncmp
    - MEMCACHED_COMMAND_APPEND
    - MEMCACHED_COMMAND_CAS
    - MEMCACHED_COMMAND_REPLACE
    - get_cas_id
    - MEMCACHED_COMMAND_SET
    - _finalize_mset
    - assert
    - MEMCACHED_COMMAND_ADD
    - out_string
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void complete_nread_ascii(conn *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/proto_text.c:228,1
    - Dst: memchr
      Src: /src/memcached/proto_text.c:242,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:247,1
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_text.c:256,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:257,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:266,1
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_text.c:267,1
    - Dst: resp_start
      Src: /src/memcached/proto_text.c:269,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:270,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:274,1
    - Dst: resp_start
      Src: /src/memcached/proto_text.c:292,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:293,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:307,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:308,1
    - Dst: memchr
      Src: /src/memcached/proto_text.c:313,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:316,1
    - Dst: authfile_check
      Src: /src/memcached/proto_text.c:320,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:321,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_text.c:324,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_text.c:326,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:328,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_text.c:329,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_text.c:332,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 336
    functionName: try_read_command_asciiauth
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - resp_start
    - mcmc_tokenize
    - strncmp
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - memchr
    - conn_set_state
    - authfile_check
    - out_string
    - memset
    - mcmc_token_get_u32
    linkageType: ''
    returnType: int
    signature: int try_read_command_asciiauth(conn *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/memcached/proto_text.c:344,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:357,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:357,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:359,1
    - Dst: rbuf_switch_to_malloc
      Src: /src/memcached/proto_text.c:367,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:368,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:378,1
    - Dst: process_command_ascii
      Src: /src/memcached/proto_text.c:381,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:386,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (cont <= (c->rcurr + c->rbytes))
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/memcached/proto_text.c
    - condition: (c->rcurr <= (c->rbuf + c->rsize))
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 389
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 389
    functionName: try_read_command_ascii
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - process_command_ascii
    - strncmp
    - rbuf_switch_to_malloc
    - memchr
    - assert
    - conn_set_state
    linkageType: ''
    returnType: int
    signature: int try_read_command_ascii(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:395,1
    - Dst: strlen
      Src: /src/memcached/proto_text.c:395,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:398,1
    - Dst: conn_release_items
      Src: /src/memcached/proto_text.c:401,1
    - Dst: resp_start
      Src: /src/memcached/proto_text.c:402,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:403,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - c
    - errstr
    argTypes:
    - conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 407
    functionName: process_get_command_err
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - resp_start
    - strlen
    - conn_set_state
    - conn_release_items
    - out_string
    - memcpy
    linkageType: ''
    returnType: void
    signature: void process_get_command_err(conn *c, const char *errstr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mc_tokto32
      Src: /src/memcached/proto_text.c:418,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:419,1
    - Dst: realtime
      Src: /src/memcached/proto_text.c:422,1
    - Dst: EXPTIME_TO_POSITIVE_TIME
      Src: /src/memcached/proto_text.c:422,1
    - Dst: process_get_cmd
      Src: /src/memcached/proto_text.c:433,1
    - Dst: process_get_command_err
      Src: /src/memcached/proto_text.c:434,1
    - Dst: conn_resp_suspend
      Src: /src/memcached/proto_text.c:439,1
    - Dst: memchr
      Src: /src/memcached/proto_text.c:447,1
    - Dst: resp_start
      Src: /src/memcached/proto_text.c:457,1
    - Dst: process_get_command_err
      Src: /src/memcached/proto_text.c:459,1
    - Dst: fprintf
      Src: /src/memcached/proto_text.c:464,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_text.c:466,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:467,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 6
    argNames:
    - c
    - t
    - pr
    - storage_cb
    - return_cas
    - should_touch
    argTypes:
    - conn*
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - parser_storage_get_cb
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 469
    functionName: process_get_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - resp_start
    - fprintf
    - mc_tokto32
    - process_get_cmd
    - memchr
    - process_get_command_err
    - resp_add_iov
    - EXPTIME_TO_POSITIVE_TIME
    - conn_set_state
    - realtime
    - out_string
    - conn_resp_suspend
    linkageType: ''
    returnType: void
    signature: void process_get_command(conn *c, LIBEVENT_THREAD *t, mcp_parser_t
      *pr, parser_storage_get_cb storage_cb, bool return_cas, bool should_touch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_text.c:472,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:474,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:476,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:478,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:480,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:482,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:484,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/proto_text.c:486,1
    - Dst: write_and_free
      Src: /src/memcached/proto_text.c:487,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - c
    - pr
    - token
    argTypes:
    - conn*
    - mcp_parser_t*
    - int
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 492
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 492
    functionName: process_stats_detail
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get
    - strncmp
    - assert
    - stats_prefix_dump
    - out_string
    - write_and_free
    linkageType: ''
    returnType: void
    signature: void process_stats_detail(conn *c, mcp_parser_t *pr, int token)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:497,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:498,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:501,1
    - Dst: server_stats
      Src: /src/memcached/proto_text.c:506,1
    - Dst: get_stats
      Src: /src/memcached/proto_text.c:507,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:508,1
    - Dst: stats_reset
      Src: /src/memcached/proto_text.c:509,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:510,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:512,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:514,1
    - Dst: process_stats_detail
      Src: /src/memcached/proto_text.c:520,1
    - Dst: process_stats_detail
      Src: /src/memcached/proto_text.c:522,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:525,1
    - Dst: process_stat_settings
      Src: /src/memcached/proto_text.c:526,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:527,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:532,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:537,1
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_text.c:541,1
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_text.c:542,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:543,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:548,1
    - Dst: item_cachedump
      Src: /src/memcached/proto_text.c:552,1
    - Dst: write_and_free
      Src: /src/memcached/proto_text.c:553,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:555,1
    - Dst: process_stats_conns
      Src: /src/memcached/proto_text.c:556,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:558,1
    - Dst: process_extstore_stats
      Src: /src/memcached/proto_text.c:559,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:562,1
    - Dst: process_proxy_stats
      Src: /src/memcached/proto_text.c:563,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:564,1
    - Dst: process_proxy_funcstats
      Src: /src/memcached/proto_text.c:565,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:566,1
    - Dst: process_proxy_bestats
      Src: /src/memcached/proto_text.c:567,1
    - Dst: get_stats
      Src: /src/memcached/proto_text.c:572,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_text.c:574,1
    - Dst: write_and_free
      Src: /src/memcached/proto_text.c:576,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:580,1
    - Dst: append_stats
      Src: /src/memcached/proto_text.c:586,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_text.c:589,1
    - Dst: write_and_free
      Src: /src/memcached/proto_text.c:591,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 594
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 594
    functionName: process_stat
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - stats_reset
    - process_proxy_funcstats
    - process_stat_settings
    - get_stats
    - out_string
    - mcmc_token_get_u32
    - append_stats
    - assert
    - out_of_memory
    - process_proxy_bestats
    - item_cachedump
    - process_stats_conns
    - write_and_free
    - process_extstore_stats
    - mcmc_token_get
    - server_stats
    - process_stats_detail
    - strncmp
    - process_proxy_stats
    linkageType: ''
    returnType: void
    signature: void process_stat(conn *c, mcp_parser_t *pr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_text.c:598,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:602,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proto_text.c:606,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:609,1
    - Dst: base64_decode
      Src: /src/memcached/proto_text.c:612,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:616,1
    - Dst: limited_get
      Src: /src/memcached/proto_text.c:623,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:629,1
    - Dst: base64_encode
      Src: /src/memcached/proto_text.c:635,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:635,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:637,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_text.c:637,1
    - Dst: snprintf
      Src: /src/memcached/proto_text.c:643,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_text.c:647,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_text.c:649,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/proto_text.c:650,1
    - Dst: item_remove
      Src: /src/memcached/proto_text.c:652,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_text.c:654,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:655,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:657,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_text.c:659,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_text.c:661,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 662
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 662
    functionName: process_meta_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - ITEM_ntotal
    - item_remove
    - mcmc_token_get
    - ITEM_clsid
    - base64_decode
    - base64_encode
    - pthread_mutex_unlock
    - snprintf
    - pthread_mutex_lock
    - MCP_PARSER_KEY
    - resp_add_iov
    - limited_get
    - assert
    - conn_set_state
    - ITEM_get_cas
    - out_string
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void process_meta_command(conn *c, mcp_parser_t *pr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: process_mset_cmd_start
      Src: /src/memcached/proto_text.c:676,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:679,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_text.c:682,1
    - Dst: ITEM_schunk
      Src: /src/memcached/proto_text.c:686,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_text.c:688,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_text.c:691,1
    - Dst: _process_token_len
      Src: /src/memcached/proto_text.c:704,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_text.c:709,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:710,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_text.c:714,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_text.c:718,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_text.c:722,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:731,1
    - Dst: out_errstring
      Src: /src/memcached/proto_text.c:739,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:741,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - c
    - pr
    - resp
    argTypes:
    - conn*
    - mcp_parser_t*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 742
    functionName: process_mset_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - ITEM_data
    - out_errstring
    - get_cas_id
    - process_mset_cmd_start
    - META_CHAR
    - _process_token_len
    - conn_set_state
    - META_SPACE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void process_mset_command(conn *c, mcp_parser_t *pr, mc_resp *resp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process_update_cmd_start
      Src: /src/memcached/proto_text.c:745,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:747,1
    - Dst: ITEM_schunk
      Src: /src/memcached/proto_text.c:754,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_text.c:756,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_text.c:759,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - c
    - pr
    - resp
    - comm
    - handle_cas
    argTypes:
    - conn*
    - mcp_parser_t*
    - mc_resp*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 764
    functionName: process_update_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - conn_set_state
    - ITEM_data
    - process_update_cmd_start
    linkageType: ''
    returnType: void
    signature: void process_update_command(conn *c, mcp_parser_t *pr, mc_resp *resp,
      int comm, bool handle_cas)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_text.c:767,1
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_text.c:770,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:771,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 777
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 777
    functionName: process_verbosity_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - out_string
    - assert
    - mcmc_token_get_u32
    linkageType: ''
    returnType: void
    signature: void process_verbosity_command(conn *c, mcp_parser_t *pr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/memcached/proto_text.c:784,1
    - Dst: close
      Src: /src/memcached/proto_text.c:787,1
    - Dst: system
      Src: /src/memcached/proto_text.c:791,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:797,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 801
    functionName: process_misbehave_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - socket
    - system
    - out_string
    - close
    linkageType: ''
    returnType: void
    signature: void process_misbehave_command(conn *c, mcp_parser_t *pr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:805,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:807,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:811,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:815,1
    - Dst: mcmc_token_get_64
      Src: /src/memcached/proto_text.c:821,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:822,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:828,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 829
    functionName: process_debugtime_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - strncmp
    - mcmc_token_get_64
    - mcmc_token_get
    - out_string
    linkageType: ''
    returnType: void
    signature: void process_debugtime_command(conn *c, mcp_parser_t *pr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:834,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:835,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:837,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:841,1
    - Dst: hash
      Src: /src/memcached/proto_text.c:842,1
    - Dst: item_lock
      Src: /src/memcached/proto_text.c:843,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:844,1
    - Dst: hash
      Src: /src/memcached/proto_text.c:845,1
    - Dst: item_unlock
      Src: /src/memcached/proto_text.c:846,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:847,1
    - Dst: item_get
      Src: /src/memcached/proto_text.c:849,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:851,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:854,1
    - Dst: item_get
      Src: /src/memcached/proto_text.c:857,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:859,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_text.c:862,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_text.c:863,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:865,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:868,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 869
    functionName: process_debugitem_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get
    - strncmp
    - item_get
    - item_unlock
    - hash
    - do_item_remove
    - out_string
    - item_lock
    linkageType: ''
    returnType: void
    signature: void process_debugitem_command(conn *c, mcp_parser_t *pr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_text.c:878,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:880,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:882,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:886,1
    - Dst: mc_toktod
      Src: /src/memcached/proto_text.c:887,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:888,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:894,1
    - Dst: mc_toktod
      Src: /src/memcached/proto_text.c:895,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:896,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:901,1
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_text.c:902,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:903,1
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_text.c:910,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:911,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:919,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:923,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 877
        line_start: 877
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 925
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 925
    functionName: process_slabs_automove_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get
    - strncmp
    - mc_toktod
    - assert
    - out_string
    - mcmc_token_get_u32
    linkageType: ''
    returnType: void
    signature: void process_slabs_automove_command(conn *c, mcp_parser_t *pr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_text.c:932,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:935,1
    - Dst: resp_has_stack
      Src: /src/memcached/proto_text.c:939,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:940,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:947,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:948,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:950,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:952,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:954,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:956,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:958,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:960,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:962,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:964,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:966,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:969,1
    - Dst: logger_add_watcher
      Src: /src/memcached/proto_text.c:977,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:979,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:982,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:985,1
    - Dst: event_del
      Src: /src/memcached/proto_text.c:986,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 989
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 989
    functionName: process_watch_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - logger_add_watcher
    - mcmc_token_get
    - strncmp
    - resp_has_stack
    - assert
    - conn_set_state
    - event_del
    - out_string
    linkageType: ''
    returnType: void
    signature: void process_watch_command(conn *c, mcp_parser_t *pr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_text.c:993,1
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_text.c:995,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:996,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:999,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1002,1
    - Dst: slabs_adjust_mem_limit
      Src: /src/memcached/proto_text.c:1003,1
    - Dst: fprintf
      Src: /src/memcached/proto_text.c:1005,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1008,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1010,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 1014
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 1014
    functionName: process_memlimit_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - slabs_adjust_mem_limit
    - fprintf
    - assert
    - out_string
    - mcmc_token_get_u32
    linkageType: ''
    returnType: void
    signature: void process_memlimit_command(conn *c, mcp_parser_t *pr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1024,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1026,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1029,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1030,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1031,1
    - Dst: mc_toktod
      Src: /src/memcached/proto_text.c:1032,1
    - Dst: mc_toktod
      Src: /src/memcached/proto_text.c:1033,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1034,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1037,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1039,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1045,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1048,1
    - Dst: mc_prcmp
      Src: /src/memcached/proto_text.c:1050,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1052,1
    - Dst: mc_prcmp
      Src: /src/memcached/proto_text.c:1053,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1055,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1057,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1059,1
    - Dst: mc_tokto32
      Src: /src/memcached/proto_text.c:1061,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1062,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1070,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1073,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1075
    functionName: process_lru_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get
    - mc_tokto32
    - strncmp
    - mc_toktod
    - mc_toktou32
    - mc_prcmp
    - out_string
    linkageType: ''
    returnType: void
    signature: void process_lru_command(conn *c, mcp_parser_t *pr)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1081,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1085,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1089,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1090,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1099,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1100,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1105,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1106,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1108,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1109,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1111,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1112,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1114,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1115,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1117,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1118,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1120,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1121,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1123,1
    - Dst: mc_toktod
      Src: /src/memcached/proto_text.c:1124,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1126,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1128,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1137,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1139,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1141
    functionName: process_extstore_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get
    - strncmp
    - mc_toktod
    - mc_toktou32
    - out_string
    linkageType: ''
    returnType: void
    signature: void process_extstore_command(conn *c, mcp_parser_t *pr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_text.c:1147,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_text.c:1149,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1153,1
    - Dst: mc_tokto32
      Src: /src/memcached/proto_text.c:1158,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1159,1
    - Dst: realtime
      Src: /src/memcached/proto_text.c:1171,1
    - Dst: item_flush_expired
      Src: /src/memcached/proto_text.c:1177,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1179
    functionName: process_flush_all_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - mc_tokto32
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - item_flush_expired
    - realtime
    - out_string
    linkageType: ''
    returnType: void
    signature: void process_flush_all_command(conn *c, mcp_parser_t *pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1183
    functionName: process_version_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - out_string
    linkageType: ''
    returnType: void
    signature: void process_version_command(conn *c, mcp_parser_t *pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1189
    functionName: process_quit_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - conn_set_state
    linkageType: ''
    returnType: void
    signature: void process_quit_command(conn *c, mcp_parser_t *pr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1193,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1199,1
    - Dst: raise
      Src: /src/memcached/proto_text.c:1200,1
    - Dst: mc_prcmp
      Src: /src/memcached/proto_text.c:1201,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1203,1
    - Dst: raise
      Src: /src/memcached/proto_text.c:1204,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1208
    functionName: process_shutdown_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - raise
    - mc_prcmp
    - out_string
    - conn_set_state
    linkageType: ''
    returnType: void
    signature: void process_shutdown_command(conn *c, mcp_parser_t *pr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1213,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1214,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1218,1
    - Dst: mc_tokto32
      Src: /src/memcached/proto_text.c:1222,1
    - Dst: mc_tokto32
      Src: /src/memcached/proto_text.c:1222,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1223,1
    - Dst: slabs_reassign
      Src: /src/memcached/proto_text.c:1227,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1230,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1233,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1236,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1239,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1242,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1247,1
    - Dst: process_slabs_automove_command
      Src: /src/memcached/proto_text.c:1248,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1250,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1252
    functionName: process_slabs_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - slabs_reassign
    - mcmc_token_get
    - mc_tokto32
    - strncmp
    - process_slabs_automove_command
    - out_string
    linkageType: ''
    returnType: void
    signature: void process_slabs_command(conn *c, mcp_parser_t *pr)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1257,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1260,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1263,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1267,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:1269,1
    - Dst: lru_crawler_crawl
      Src: /src/memcached/proto_text.c:1272,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1277,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1280,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1283,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1286,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1289,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1293,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1295,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1299,1
    - Dst: resp_has_stack
      Src: /src/memcached/proto_text.c:1302,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1303,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1307,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:1309,1
    - Dst: lru_crawler_crawl
      Src: /src/memcached/proto_text.c:1312,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1322,1
    - Dst: event_del
      Src: /src/memcached/proto_text.c:1323,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1326,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1329,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1332,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1335,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1339,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1341,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1345,1
    - Dst: resp_has_stack
      Src: /src/memcached/proto_text.c:1348,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1349,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1353,1
    - Dst: memcpy
      Src: /src/memcached/proto_text.c:1355,1
    - Dst: lru_crawler_crawl
      Src: /src/memcached/proto_text.c:1358,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1362,1
    - Dst: event_del
      Src: /src/memcached/proto_text.c:1363,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1366,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1369,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1372,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1375,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1379,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1381,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1382,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1386,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1388,1
    - Dst: mc_toktou32
      Src: /src/memcached/proto_text.c:1390,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1391,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1395,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1399,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1402,1
    - Dst: start_item_crawler_thread
      Src: /src/memcached/proto_text.c:1403,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1404,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1406,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1408,1
    - Dst: stop_item_crawler_thread
      Src: /src/memcached/proto_text.c:1409,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1410,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1412,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1415,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1419,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 144
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1421
    functionName: process_lru_crawler_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - lru_crawler_crawl
    - mcmc_token_get
    - strncmp
    - resp_has_stack
    - start_item_crawler_thread
    - mc_toktou32
    - event_del
    - conn_set_state
    - stop_item_crawler_thread
    - out_string
    - memcpy
    linkageType: ''
    returnType: void
    signature: void process_lru_crawler_command(conn *c, mcp_parser_t *pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refresh_certs
      Src: /src/memcached/proto_text.c:1425,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1426,1
    - Dst: write_and_free
      Src: /src/memcached/proto_text.c:1428,1
    - Dst: strlen
      Src: /src/memcached/proto_text.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - pr
    argTypes:
    - conn*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1431
    functionName: process_refresh_certs_command
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 0
    functionsReached:
    - strlen
    - refresh_certs
    - out_string
    - write_and_free
    linkageType: ''
    returnType: void
    signature: void process_refresh_certs_command(conn *c, mcp_parser_t *pr)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: resp_start
      Src: /src/memcached/proto_text.c:1500,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1501,1
    - Dst: process_request
      Src: /src/memcached/proto_text.c:1506,1
    - Dst: fprintf
      Src: /src/memcached/proto_text.c:1509,1
    - Dst: process_marithmetic_cmd
      Src: /src/memcached/proto_text.c:1515,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1516,1
    - Dst: process_mdelete_cmd
      Src: /src/memcached/proto_text.c:1519,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1520,1
    - Dst: process_mget_cmd
      Src: /src/memcached/proto_text.c:1523,1
    - Dst: conn_resp_suspend
      Src: /src/memcached/proto_text.c:1526,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1528,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1532,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1534,1
    - Dst: process_mset_command
      Src: /src/memcached/proto_text.c:1537,1
    - Dst: process_meta_command
      Src: /src/memcached/proto_text.c:1540,1
    - Dst: process_get_command
      Src: /src/memcached/proto_text.c:1543,1
    - Dst: process_get_command
      Src: /src/memcached/proto_text.c:1546,1
    - Dst: process_get_command
      Src: /src/memcached/proto_text.c:1549,1
    - Dst: process_get_command
      Src: /src/memcached/proto_text.c:1552,1
    - Dst: process_delete_cmd
      Src: /src/memcached/proto_text.c:1555,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1556,1
    - Dst: process_arithmetic_cmd
      Src: /src/memcached/proto_text.c:1559,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1560,1
    - Dst: process_arithmetic_cmd
      Src: /src/memcached/proto_text.c:1563,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1564,1
    - Dst: process_touch_cmd
      Src: /src/memcached/proto_text.c:1567,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1568,1
    - Dst: process_update_command
      Src: /src/memcached/proto_text.c:1571,1
    - Dst: process_update_command
      Src: /src/memcached/proto_text.c:1574,1
    - Dst: process_update_command
      Src: /src/memcached/proto_text.c:1577,1
    - Dst: process_update_command
      Src: /src/memcached/proto_text.c:1580,1
    - Dst: process_update_command
      Src: /src/memcached/proto_text.c:1583,1
    - Dst: process_update_command
      Src: /src/memcached/proto_text.c:1586,1
    - Dst: process_quit_command
      Src: /src/memcached/proto_text.c:1589,1
    - Dst: process_version_command
      Src: /src/memcached/proto_text.c:1592,1
    - Dst: process_stat
      Src: /src/memcached/proto_text.c:1595,1
    - Dst: process_watch_command
      Src: /src/memcached/proto_text.c:1598,1
    - Dst: fprintf
      Src: /src/memcached/proto_text.c:1601,1
    - Dst: assert
      Src: /src/memcached/proto_text.c:1602,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1609,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1612,1
    - Dst: struct text_cmd_entry*::func
      Src: /src/memcached/proto_text.c:1613,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_text.c:1620,1
    - Dst: strncmp
      Src: /src/memcached/proto_text.c:1621,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_text.c:1622,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1628,1
    - Dst: out_string
      Src: /src/memcached/proto_text.c:1632,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 124
    argCount: 3
    argNames:
    - c
    - command
    - cmdlen
    argTypes:
    - conn*
    - char*
    - size_t
    assertStmts:
    - condition: (true == false)
      pos:
        line_end: 1601
        line_start: 1601
        source_file: /src/memcached/proto_text.c
    constantsTouched: []
    func_position:
      end: 1633
      start: 1496
    functionDepth: 3
    functionLinenumber: 1496
    functionLinenumberEnd: 1633
    functionName: process_command_ascii
    functionSourceFile: /src/memcached/proto_text.c
    functionUses: 1
    functionsReached:
    - resp_start
    - process_touch_cmd
    - process_version_command
    - process_delete_cmd
    - process_request
    - process_mset_command
    - out_string
    - process_update_command
    - process_watch_command
    - assert
    - conn_set_state
    - process_meta_command
    - process_mget_cmd
    - process_get_command
    - struct text_cmd_entry*::func
    - process_mdelete_cmd
    - process_marithmetic_cmd
    - conn_resp_suspend
    - fprintf
    - process_quit_command
    - mcmc_token_get
    - strncmp
    - process_arithmetic_cmd
    - process_stat
    linkageType: ''
    returnType: void
    signature: void process_command_ascii(conn *c, char *command, size_t cmdlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - be
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: mcp_tls_shutdown
    functionSourceFile: /src/memcached/proxy_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcp_tls_shutdown(be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - be
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: mcp_tls_cleanup
    functionSourceFile: /src/memcached/proxy_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcp_tls_cleanup(be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - be
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: mcp_tls_handshake
    functionSourceFile: /src/memcached/proxy_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcp_tls_handshake(be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - be
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: mcp_tls_send_validate
    functionSourceFile: /src/memcached/proxy_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcp_tls_send_validate(be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - be
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: mcp_tls_read
    functionSourceFile: /src/memcached/proxy_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcp_tls_read(be)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/stats_prefix.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - delimiter
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: stats_prefix_init
    functionSourceFile: /src/memcached/stats_prefix.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void stats_prefix_init(char delimiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/stats_prefix.c:28,1
    - Dst: free
      Src: /src/memcached/stats_prefix.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: stats_prefix_clear
    functionSourceFile: /src/memcached/stats_prefix.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void stats_prefix_clear(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/stats_prefix.c:43,1
    - Dst: hash
      Src: /src/memcached/stats_prefix.c:56,1
    - Dst: strncmp
      Src: /src/memcached/stats_prefix.c:59,1
    - Dst: calloc
      Src: /src/memcached/stats_prefix.c:63,1
    - Dst: perror
      Src: /src/memcached/stats_prefix.c:65,1
    - Dst: malloc
      Src: /src/memcached/stats_prefix.c:69,1
    - Dst: perror
      Src: /src/memcached/stats_prefix.c:71,1
    - Dst: free
      Src: /src/memcached/stats_prefix.c:72,1
    - Dst: strncpy
      Src: /src/memcached/stats_prefix.c:76,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - key
    - nkey
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/memcached/stats_prefix.c
    constantsTouched: []
    func_position:
      end: 87
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 87
    functionName: stats_prefix_find
    functionSourceFile: /src/memcached/stats_prefix.c
    functionUses: 4
    functionsReached:
    - free
    - strncmp
    - malloc
    - strncpy
    - hash
    - assert
    - perror
    - calloc
    linkageType: ''
    returnType: PREFIX_STATS
    signature: PREFIX_STATS *stats_prefix_find(const char *key, const size_t nkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/stats_prefix.c:92,1
    - Dst: stats_prefix_find
      Src: /src/memcached/stats_prefix.c:93,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/stats_prefix.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - nkey
    - is_hit
    argTypes:
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: stats_prefix_record_get
    functionSourceFile: /src/memcached/stats_prefix.c
    functionUses: 2
    functionsReached:
    - stats_prefix_find
    - STATS_UNLOCK
    - STATS_LOCK
    linkageType: ''
    returnType: void
    signature: void stats_prefix_record_get(const char *key, const size_t nkey, const
      bool is_hit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/stats_prefix.c:106,1
    - Dst: stats_prefix_find
      Src: /src/memcached/stats_prefix.c:107,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/stats_prefix.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - nkey
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: stats_prefix_record_delete
    functionSourceFile: /src/memcached/stats_prefix.c
    functionUses: 3
    functionsReached:
    - stats_prefix_find
    - STATS_UNLOCK
    - STATS_LOCK
    linkageType: ''
    returnType: void
    signature: void stats_prefix_record_delete(const char *key, const size_t nkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/stats_prefix.c:117,1
    - Dst: stats_prefix_find
      Src: /src/memcached/stats_prefix.c:118,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/stats_prefix.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - nkey
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: stats_prefix_record_set
    functionSourceFile: /src/memcached/stats_prefix.c
    functionUses: 2
    functionsReached:
    - stats_prefix_find
    - STATS_UNLOCK
    - STATS_LOCK
    linkageType: ''
    returnType: void
    signature: void stats_prefix_record_set(const char *key, const size_t nkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/stats_prefix.c:140,1
    - Dst: strlen
      Src: /src/memcached/stats_prefix.c:141,1
    - Dst: strlen
      Src: /src/memcached/stats_prefix.c:142,1
    - Dst: malloc
      Src: /src/memcached/stats_prefix.c:145,1
    - Dst: perror
      Src: /src/memcached/stats_prefix.c:147,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/stats_prefix.c:148,1
    - Dst: snprintf
      Src: /src/memcached/stats_prefix.c:155,1
    - Dst: assert
      Src: /src/memcached/stats_prefix.c:161,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/stats_prefix.c:166,1
    - Dst: memcpy
      Src: /src/memcached/stats_prefix.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - length
    argTypes:
    - int*
    assertStmts:
    - condition: (total_written < size)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/memcached/stats_prefix.c
    constantsTouched: []
    func_position:
      end: 171
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 171
    functionName: stats_prefix_dump
    functionSourceFile: /src/memcached/stats_prefix.c
    functionUses: 2
    functionsReached:
    - memcpy
    - malloc
    - snprintf
    - strlen
    - assert
    - STATS_LOCK
    - perror
    - STATS_UNLOCK
    linkageType: ''
    returnType: char
    signature: char *stats_prefix_dump(int *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:23,1
    - Dst: luaL_traceback
      Src: /src/memcached/proxy_config.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: _msghandler
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - lua_tostring
    - luaL_traceback
    linkageType: ''
    returnType: int
    signature: int _msghandler(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/memcached/proxy_config.c:29,1
    - Dst: lua_pushcfunction
      Src: /src/memcached/proxy_config.c:30,1
    - Dst: lua_insert
      Src: /src/memcached/proxy_config.c:31,1
    - Dst: lua_pcall
      Src: /src/memcached/proxy_config.c:32,1
    - Dst: lua_remove
      Src: /src/memcached/proxy_config.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - L
    - narg
    - nres
    argTypes:
    - lua_State*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: _run_pcall
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - lua_pushcfunction
    - lua_insert
    - lua_gettop
    - lua_remove
    - lua_pcall
    linkageType: ''
    returnType: int
    signature: int _run_pcall(lua_State *L, int narg, int nres)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/memcached/proxy_config.c:44,1
    - Dst: memcpy
      Src: /src/memcached/proxy_config.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - L
    - p
    - sz
    - ud
    argTypes:
    - lua_State*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: _dump_helper
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _dump_helper(lua_State *L, const void *p, size_t sz, void *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - L
    - data
    - size
    argTypes:
    - lua_State*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: _load_helper
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * _load_helper(lua_State *L, void *data, size_t *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/memcached/proxy_config.c:69,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/proxy_config.c:71,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: proxy_start_reload
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_trylock
    - pthread_mutex_unlock
    - pthread_cond_signal
    linkageType: ''
    returnType: void
    signature: void proxy_start_reload(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:78,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/proxy_config.c:80,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:81,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:85,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:89,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_config.c:94,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_config.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: proxy_first_confload
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - pthread_cond_signal
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAT_L
    linkageType: ''
    returnType: int
    signature: int proxy_first_confload(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:109,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_config.c:111,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_config.c:112,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/proxy_config.c:113,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proxy_config.c:117,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:118,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:121,1
    - Dst: STAILQ_FOREACH
      Src: /src/memcached/proxy_config.c:124,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:126,1
    - Dst: assert
      Src: /src/memcached/proxy_config.c:127,1
    - Dst: assert
      Src: /src/memcached/proxy_config.c:133,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_config.c:135,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:138,1
    - Dst: lua_gc
      Src: /src/memcached/proxy_config.c:141,1
    - Dst: lua_gc
      Src: /src/memcached/proxy_config.c:144,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:146,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (g->self_ref != -1)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/memcached/proxy_config.c
    - condition: (g->self_ref > 0 || g->refcount == 0)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/memcached/proxy_config.c
    constantsTouched: []
    func_position:
      end: 153
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 153
    functionName: _proxy_manager_thread
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    - STAILQ_EMPTY
    - luaL_unref
    - STAILQ_CONCAT
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAILQ_FOREACH
    - pthread_cond_wait
    - assert
    - lua_gc
    linkageType: ''
    returnType: void
    signature: void *_proxy_manager_thread(void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STAT_L
      Src: /src/memcached/proxy_config.c:165,1
    - Dst: strlen
      Src: /src/memcached/proxy_config.c:169,1
    - Dst: strlen
      Src: /src/memcached/proxy_config.c:172,1
    - Dst: calloc
      Src: /src/memcached/proxy_config.c:179,1
    - Dst: strlen
      Src: /src/memcached/proxy_config.c:199,1
    - Dst: memcpy
      Src: /src/memcached/proxy_config.c:200,1
    - Dst: free
      Src: /src/memcached/proxy_config.c:211,1
    - Dst: free
      Src: /src/memcached/proxy_config.c:218,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_config.c:220,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - proxy_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 221
    functionName: proxy_config_stats_prep
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - free
    - STAT_UL
    - strlen
    - STAT_L
    - calloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void proxy_config_stats_prep(proxy_ctx_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_config.c:224,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_config.c:225,1
    - Dst: lua_settop
      Src: /src/memcached/proxy_config.c:230,1
    - Dst: proxy_load_config
      Src: /src/memcached/proxy_config.c:240,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_config.c:242,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_config.c:243,1
    - Dst: proxy_config_stats_prep
      Src: /src/memcached/proxy_config.c:247,1
    - Dst: get_worker_thread
      Src: /src/memcached/proxy_config.c:256,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:258,1
    - Dst: proxy_reload_notify
      Src: /src/memcached/proxy_config.c:261,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/proxy_config.c:264,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:266,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_config.c:270,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_config.c:271,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_config.c:278,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_config.c:282,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_config.c:284,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_config.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - proxy_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 286
    functionName: proxy_config_reload
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - proxy_load_config
    - lua_pop
    - pthread_mutex_unlock
    - LOGGER_LOG
    - pthread_mutex_lock
    - pthread_cond_wait
    - proxy_reload_notify
    - STAT_L
    - lua_settop
    - get_worker_thread
    - STAT_INCR
    - proxy_config_stats_prep
    linkageType: ''
    returnType: void
    signature: void proxy_config_reload(proxy_ctx_t *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_config.c:292,1
    - Dst: lua_gettop
      Src: /src/memcached/proxy_config.c:292,1
    - Dst: assert
      Src: /src/memcached/proxy_config.c:293,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_config.c:297,1
    - Dst: clock_gettime
      Src: /src/memcached/proxy_config.c:299,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_config.c:308,1
    - Dst: lua_next
      Src: /src/memcached/proxy_config.c:309,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:310,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_config.c:311,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_config.c:312,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_config.c:317,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_config.c:318,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_config.c:321,1
    - Dst: lua_pcall
      Src: /src/memcached/proxy_config.c:323,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_config.c:324,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_config.c:326,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:326,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_config.c:327,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_config.c:328,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_config.c:339,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_config.c:340,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_config.c:349,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_config.c:352,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - proxy_ctx_t*
    assertStmts:
    - condition: (ctx->cron_ref)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/memcached/proxy_config.c
    - condition: (lua_gettop(L) == 0)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/memcached/proxy_config.c
    constantsTouched: []
    func_position:
      end: 353
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 353
    functionName: proxy_run_crons
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - lua_getiuservalue
    - lua_pop
    - lua_rawgeti
    - lua_setfield
    - lua_pushnil
    - lua_touserdata
    - lua_absindex
    - lua_pcall
    - LOGGER_LOG
    - lua_gettop
    - assert
    - lua_tostring
    - lua_next
    - STAT_INCR
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: void proxy_run_crons(proxy_ctx_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: logger_create
      Src: /src/memcached/proxy_config.c:370,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:371,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/proxy_config.c:372,1
    - Dst: pthread_cond_timedwait
      Src: /src/memcached/proxy_config.c:378,1
    - Dst: proxy_run_crons
      Src: /src/memcached/proxy_config.c:380,1
    - Dst: proxy_config_reload
      Src: /src/memcached/proxy_config.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 388
    functionName: _proxy_config_thread
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - pthread_cond_timedwait
    - pthread_cond_signal
    - proxy_run_crons
    - pthread_mutex_lock
    - proxy_config_reload
    - logger_create
    linkageType: ''
    returnType: void
    signature: void *_proxy_config_thread(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:393,1
    - Dst: pthread_create
      Src: /src/memcached/proxy_config.c:394,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:396,1
    - Dst: strerror
      Src: /src/memcached/proxy_config.c:397,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:398,1
    - Dst: thread_setname
      Src: /src/memcached/proxy_config.c:401,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/proxy_config.c:403,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:404,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:406,1
    - Dst: pthread_create
      Src: /src/memcached/proxy_config.c:407,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:409,1
    - Dst: strerror
      Src: /src/memcached/proxy_config.c:410,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:411,1
    - Dst: thread_setname
      Src: /src/memcached/proxy_config.c:414,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - proxy_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 418
    functionName: _start_proxy_config_threads
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_mutex_unlock
    - pthread_create
    - pthread_mutex_lock
    - thread_setname
    - strerror
    - pthread_cond_wait
    linkageType: ''
    returnType: int
    signature: int _start_proxy_config_threads(proxy_ctx_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/memcached/proxy_config.c:424,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:426,1
    - Dst: strtok_r
      Src: /src/memcached/proxy_config.c:431,1
    - Dst: strtok_r
      Src: /src/memcached/proxy_config.c:433,1
    - Dst: calloc
      Src: /src/memcached/proxy_config.c:434,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:436,1
    - Dst: calloc
      Src: /src/memcached/proxy_config.c:440,1
    - Dst: strdup
      Src: /src/memcached/proxy_config.c:441,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:443,1
    - Dst: assert
      Src: /src/memcached/proxy_config.c:455,1
    - Dst: free
      Src: /src/memcached/proxy_config.c:460,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - files
    argTypes:
    - proxy_ctx_t*
    - char*
    assertStmts:
    - condition: (list->next == NULL)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/memcached/proxy_config.c
    constantsTouched: []
    func_position:
      end: 462
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 462
    functionName: proxy_init_startfiles
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    - assert
    - strdup
    - calloc
    - strtok_r
    linkageType: ''
    returnType: int
    signature: int proxy_init_startfiles(proxy_ctx_t *ctx, const char *files)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_config.c:467,1
    - Dst: memset
      Src: /src/memcached/proxy_config.c:472,1
    - Dst: strcmp
      Src: /src/memcached/proxy_config.c:475,1
    - Dst: luaL_loadbuffer
      Src: /src/memcached/proxy_config.c:476,1
    - Dst: luaL_loadfile
      Src: /src/memcached/proxy_config.c:478,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:481,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:481,1
    - Dst: lua_dump
      Src: /src/memcached/proxy_config.c:488,1
    - Dst: _run_pcall
      Src: /src/memcached/proxy_config.c:492,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:494,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:494,1
    - Dst: exit
      Src: /src/memcached/proxy_config.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - proxy_ctx_t*
    assertStmts:
    - condition: (db)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/memcached/proxy_config.c
    constantsTouched: []
    func_position:
      end: 502
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 502
    functionName: proxy_load_files
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - fprintf
    - lua_dump
    - luaL_loadfile
    - luaL_loadbuffer
    - exit
    - _run_pcall
    - assert
    - lua_tostring
    - memset
    - strcmp
    linkageType: ''
    returnType: int
    signature: int proxy_load_files(proxy_ctx_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: proxy_init_startfiles
      Src: /src/memcached/proxy_config.c:510,1
    - Dst: proxy_load_files
      Src: /src/memcached/proxy_config.c:517,1
    - Dst: lua_getglobal
      Src: /src/memcached/proxy_config.c:520,1
    - Dst: lua_isnil
      Src: /src/memcached/proxy_config.c:522,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:523,1
    - Dst: exit
      Src: /src/memcached/proxy_config.c:524,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_config.c:526,1
    - Dst: _run_pcall
      Src: /src/memcached/proxy_config.c:527,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:528,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:528,1
    - Dst: exit
      Src: /src/memcached/proxy_config.c:529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 534
    functionName: proxy_load_config
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 1
    functionsReached:
    - fprintf
    - proxy_load_files
    - lua_pushnil
    - lua_isnil
    - lua_getglobal
    - exit
    - _run_pcall
    - lua_tostring
    - proxy_init_startfiles
    linkageType: ''
    returnType: int
    signature: int proxy_load_config(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_config.c:538,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_config.c:540,1
    - Dst: luaL_setmetatable
      Src: /src/memcached/proxy_config.c:541,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_config.c:550,1
    - Dst: mcp_gobj_ref
      Src: /src/memcached/proxy_config.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - from
    - to
    - thr
    argTypes:
    - lua_State*
    - lua_State*
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 553
    functionName: _copy_pool
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - lua_pushvalue
    - luaL_checkudata
    - lua_newuserdatauv
    - luaL_setmetatable
    - mcp_gobj_ref
    linkageType: ''
    returnType: int
    signature: int _copy_pool(lua_State *from, lua_State *to, LIBEVENT_THREAD *thr)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_config.c:559,1
    - Dst: luaL_checkstack
      Src: /src/memcached/proxy_config.c:561,1
    - Dst: luaL_checkstack
      Src: /src/memcached/proxy_config.c:562,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_config.c:565,1
    - Dst: lua_getmetatable
      Src: /src/memcached/proxy_config.c:569,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_config.c:570,1
    - Dst: lua_rawget
      Src: /src/memcached/proxy_config.c:571,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:572,1
    - Dst: strcmp
      Src: /src/memcached/proxy_config.c:573,1
    - Dst: _copy_pool
      Src: /src/memcached/proxy_config.c:574,1
    - Dst: strcmp
      Src: /src/memcached/proxy_config.c:576,1
    - Dst: mcp_ratelim_proxy_tbf
      Src: /src/memcached/proxy_config.c:577,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_config.c:581,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_config.c:584,1
    - Dst: lua_isinteger
      Src: /src/memcached/proxy_config.c:588,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_config.c:589,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_config.c:589,1
    - Dst: lua_pushnumber
      Src: /src/memcached/proxy_config.c:591,1
    - Dst: lua_tonumber
      Src: /src/memcached/proxy_config.c:591,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_config.c:595,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:595,1
    - Dst: lua_rawlen
      Src: /src/memcached/proxy_config.c:595,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_config.c:598,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_config.c:598,1
    - Dst: lua_newtable
      Src: /src/memcached/proxy_config.c:604,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_config.c:605,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_config.c:606,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_config.c:607,1
    - Dst: lua_next
      Src: /src/memcached/proxy_config.c:608,1
    - Dst: lua_type
      Src: /src/memcached/proxy_config.c:610,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_config.c:619,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:619,1
    - Dst: lua_rawlen
      Src: /src/memcached/proxy_config.c:619,1
    - Dst: lua_isinteger
      Src: /src/memcached/proxy_config.c:622,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_config.c:623,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_config.c:623,1
    - Dst: lua_pushnumber
      Src: /src/memcached/proxy_config.c:625,1
    - Dst: lua_tonumber
      Src: /src/memcached/proxy_config.c:625,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_config.c:629,1
    - Dst: _copy_config_table
      Src: /src/memcached/proxy_config.c:634,1
    - Dst: lua_settable
      Src: /src/memcached/proxy_config.c:635,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_config.c:636,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_config.c:642,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - from
    - to
    - thr
    argTypes:
    - lua_State*
    - lua_State*
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 644
    functionName: _copy_config_table
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 1
    functionsReached:
    - _copy_pool
    - lua_rawget
    - lua_absindex
    - lua_tonumber
    - lua_pushstring
    - lua_type
    - luaL_checkstack
    - lua_tostring
    - proxy_lua_error
    - lua_newtable
    - lua_next
    - lua_pushnumber
    - lua_pop
    - lua_pushboolean
    - lua_pushnil
    - lua_settable
    - _copy_config_table
    - lua_rawlen
    - lua_pushlstring
    - lua_toboolean
    - mcp_ratelim_proxy_tbf
    - lua_pushinteger
    - lua_getmetatable
    - lua_isinteger
    - lua_tointeger
    - strcmp
    linkageType: ''
    returnType: void
    signature: void _copy_config_table(lua_State *from, lua_State *to, LIBEVENT_THREAD
      *thr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:650,1
    - Dst: proxy_thread_loadconf
      Src: /src/memcached/proxy_config.c:651,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/proxy_config.c:655,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - arg
    - thr
    argTypes:
    - void*
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 657
    functionName: proxy_worker_reload
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 0
    functionsReached:
    - proxy_thread_loadconf
    - pthread_mutex_unlock
    - pthread_cond_signal
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void proxy_worker_reload(void *arg, LIBEVENT_THREAD *thr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lua_load
      Src: /src/memcached/proxy_config.c:668,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:670,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:670,1
    - Dst: _run_pcall
      Src: /src/memcached/proxy_config.c:674,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:677,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:677,1
    - Dst: lua_getglobal
      Src: /src/memcached/proxy_config.c:684,1
    - Dst: _copy_config_table
      Src: /src/memcached/proxy_config.c:701,1
    - Dst: _run_pcall
      Src: /src/memcached/proxy_config.c:704,1
    - Dst: fprintf
      Src: /src/memcached/proxy_config.c:705,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_config.c:705,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_config.c:710,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_config.c:715,1
    - Dst: calloc
      Src: /src/memcached/proxy_config.c:717,1
    - Dst: calloc
      Src: /src/memcached/proxy_config.c:725,1
    - Dst: assert
      Src: /src/memcached/proxy_config.c:737,1
    - Dst: free
      Src: /src/memcached/proxy_config.c:738,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_config.c:743,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_config.c:747,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - ctx
    - thr
    argTypes:
    - proxy_ctx_t*
    - LIBEVENT_THREAD*
    assertStmts:
    - condition: (tus->num_stats <= stats_num)
      pos:
        line_end: 736
        line_start: 736
        source_file: /src/memcached/proxy_config.c
    constantsTouched: []
    func_position:
      end: 753
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 753
    functionName: proxy_thread_loadconf
    functionSourceFile: /src/memcached/proxy_config.c
    functionUses: 1
    functionsReached:
    - free
    - fprintf
    - lua_load
    - STAT_UL
    - pthread_mutex_unlock
    - lua_getglobal
    - pthread_mutex_lock
    - _run_pcall
    - assert
    - STAT_L
    - lua_tostring
    - _copy_config_table
    - calloc
    linkageType: ''
    returnType: int
    signature: int proxy_thread_loadconf(proxy_ctx_t *ctx, LIBEVENT_THREAD *thr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/proxy_network.c:70,1
    - Dst: write
      Src: /src/memcached/proxy_network.c:72,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: _beconn_send_validate
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - write
    - strlen
    - mcmc_fd
    linkageType: ''
    returnType: int
    signature: int _beconn_send_validate(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_check_nonblock_connect
      Src: /src/memcached/proxy_network.c:90,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:91,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:95,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:98,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:98,1
    - Dst: gettimeofday
      Src: /src/memcached/proxy_network.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: _proxy_beconn_checkconnect
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - mcmc_fd
    - _reset_bad_backend
    - P_DEBUG
    - mcmc_check_nonblock_connect
    linkageType: ''
    returnType: int
    signature: int _proxy_beconn_checkconnect(struct mcp_backendconn_s *be)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - be
    argTypes:
    - mcp_backend_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 140
    functionName: proxy_choose_beconn
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mcp_backendconn_s
    signature: struct mcp_backendconn_s *proxy_choose_beconn(mcp_backend_t *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_network.c:145,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_network.c:146,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_network.c:149,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proxy_network.c:150,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_network.c:151,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:153,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:154,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proxy_network.c:158,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_network.c:163,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:164,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_network.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - t
    argTypes:
    - proxy_event_thread_t*
    assertStmts:
    - condition: (be->depth > -1)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: _proxy_event_handler_dequeue
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    - STAILQ_EMPTY
    - STAILQ_CONCAT
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAILQ_INSERT_TAIL
    - STAILQ_FIRST
    - assert
    - STAILQ_REMOVE_HEAD
    linkageType: ''
    returnType: void
    signature: void _proxy_event_handler_dequeue(proxy_event_thread_t *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/proxy_network.c:176,1
    - Dst: event_pending
      Src: /src/memcached/proxy_network.c:185,1
    - Dst: event_del
      Src: /src/memcached/proxy_network.c:187,1
    - Dst: event_pending
      Src: /src/memcached/proxy_network.c:189,1
    - Dst: event_del
      Src: /src/memcached/proxy_network.c:191,1
    - Dst: event_pending
      Src: /src/memcached/proxy_network.c:193,1
    - Dst: event_del
      Src: /src/memcached/proxy_network.c:195,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:199,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:199,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:200,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:200,1
    - Dst: mcp_tls_shutdown
      Src: /src/memcached/proxy_network.c:202,1
    - Dst: mcmc_disconnect
      Src: /src/memcached/proxy_network.c:203,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_network.c:206,1
    - Dst: free
      Src: /src/memcached/proxy_network.c:211,1
    - Dst: free
      Src: /src/memcached/proxy_network.c:213,1
    - Dst: free
      Src: /src/memcached/proxy_network.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - be
    argTypes:
    - mcp_backend_t*
    assertStmts:
    - condition: (STAILQ_EMPTY(&bec->iop_write))
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/memcached/proxy_network.c
    - condition: (STAILQ_EMPTY(&bec->iop_read))
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 217
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 217
    functionName: _cleanup_backend
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - free
    - mcmc_disconnect
    - STAILQ_EMPTY
    - mcp_sharedvm_delta
    - event_pending
    - mcp_tls_shutdown
    - event_del
    - assert
    linkageType: ''
    returnType: void
    signature: void _cleanup_backend(mcp_backend_t *be)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_connect
      Src: /src/memcached/proxy_network.c:231,1
    - Dst: event_assign
      Src: /src/memcached/proxy_network.c:238,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:238,1
    - Dst: event_assign
      Src: /src/memcached/proxy_network.c:239,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:239,1
    - Dst: event_assign
      Src: /src/memcached/proxy_network.c:240,1
    - Dst: event_add
      Src: /src/memcached/proxy_network.c:249,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - be
    argTypes:
    - mcp_backend_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 254
    functionName: _setup_backend
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcmc_fd
    - event_assign
    - _reset_bad_backend
    - mcmc_connect
    - event_add
    linkageType: ''
    returnType: void
    signature: void _setup_backend(mcp_backend_t *be)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/memcached/proxy_network.c:263,1
    - Dst: read
      Src: /src/memcached/proxy_network.c:269,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:270,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_network.c:277,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_network.c:278,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proxy_network.c:279,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_network.c:280,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:291,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:292,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proxy_network.c:293,1
    - Dst: _cleanup_backend
      Src: /src/memcached/proxy_network.c:297,1
    - Dst: _setup_backend
      Src: /src/memcached/proxy_network.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 303
    functionName: proxy_event_beconn
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    - STAILQ_EMPTY
    - STAILQ_CONCAT
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - _cleanup_backend
    - STAILQ_FIRST
    - _setup_backend
    - STAILQ_REMOVE_HEAD
    - read
    - P_DEBUG
    linkageType: ''
    returnType: void
    signature: void proxy_event_beconn(evutil_socket_t fd, short which, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:307,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:309,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:310,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proxy_network.c:311,1
    - Dst: mcp_resp_set_elapsed
      Src: /src/memcached/proxy_network.c:312,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:316,1
    - Dst: return_io_pending
      Src: /src/memcached/proxy_network.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - be
    argTypes:
    - mcp_backend_t*
    assertStmts:
    - condition: (be->depth > -1)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: _proxy_flush_backend_queue
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcp_resp_set_elapsed
    - STAILQ_EMPTY
    - return_io_pending
    - STAILQ_FIRST
    - assert
    - STAILQ_REMOVE_HEAD
    - P_DEBUG
    linkageType: ''
    returnType: void
    signature: void _proxy_flush_backend_queue(mcp_backend_t *be)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: proxy_choose_beconn
      Src: /src/memcached/proxy_network.c:326,1
    - Dst: _proxy_flush_backend_queue
      Src: /src/memcached/proxy_network.c:331,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_network.c:335,1
    - Dst: _proxy_flush_backend_queue
      Src: /src/memcached/proxy_network.c:336,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proxy_network.c:341,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:346,1
    - Dst: _flush_pending_write
      Src: /src/memcached/proxy_network.c:349,1
    - Dst: _flush_pending_tls_write
      Src: /src/memcached/proxy_network.c:351,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:355,1
    - Dst: _start_write_event
      Src: /src/memcached/proxy_network.c:358,1
    - Dst: _start_timeout_event
      Src: /src/memcached/proxy_network.c:362,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - head
    argTypes:
    - be_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 367
    functionName: proxy_run_backend_queue
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - STAILQ_CONCAT
    - _flush_pending_write
    - _proxy_flush_backend_queue
    - _reset_bad_backend
    - proxy_choose_beconn
    - _start_timeout_event
    - P_DEBUG
    - _flush_pending_tls_write
    - _start_write_event
    - STAT_INCR
    linkageType: ''
    returnType: void
    signature: void proxy_run_backend_queue(be_head_t *head)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: proxy_choose_beconn
      Src: /src/memcached/proxy_network.c:326,1
    - Dst: _proxy_flush_backend_queue
      Src: /src/memcached/proxy_network.c:331,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_network.c:335,1
    - Dst: _proxy_flush_backend_queue
      Src: /src/memcached/proxy_network.c:336,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proxy_network.c:341,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:346,1
    - Dst: _flush_pending_write
      Src: /src/memcached/proxy_network.c:349,1
    - Dst: _flush_pending_tls_write
      Src: /src/memcached/proxy_network.c:351,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:355,1
    - Dst: _start_write_event
      Src: /src/memcached/proxy_network.c:358,1
    - Dst: _start_timeout_event
      Src: /src/memcached/proxy_network.c:362,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 366
    functionName: STAILQ_FOREACH
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 1
    functionsReached:
    - STAILQ_CONCAT
    - _flush_pending_write
    - _proxy_flush_backend_queue
    - _reset_bad_backend
    - proxy_choose_beconn
    - _start_timeout_event
    - P_DEBUG
    - _flush_pending_tls_write
    - _start_write_event
    - STAT_INCR
    linkageType: ''
    returnType: void
    signature: void STAILQ_FOREACH(be, head, be_next)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/memcached/proxy_network.c:375,1
    - Dst: read
      Src: /src/memcached/proxy_network.c:388,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:389,1
    - Dst: _proxy_event_handler_dequeue
      Src: /src/memcached/proxy_network.c:394,1
    - Dst: proxy_run_backend_queue
      Src: /src/memcached/proxy_network.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 398
    functionName: proxy_event_handler
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - P_DEBUG
    - _proxy_event_handler_dequeue
    - proxy_run_backend_queue
    - read
    linkageType: ''
    returnType: void
    signature: void proxy_event_handler(evutil_socket_t fd, short which, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: logger_create
      Src: /src/memcached/proxy_network.c:403,1
    - Dst: event_base_loop
      Src: /src/memcached/proxy_network.c:404,1
    - Dst: event_base_free
      Src: /src/memcached/proxy_network.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: proxy_event_thread
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - event_base_loop
    - event_base_free
    - logger_create
    linkageType: ''
    returnType: void
    signature: void *proxy_event_thread(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_pending
      Src: /src/memcached/proxy_network.c:413,1
    - Dst: event_del
      Src: /src/memcached/proxy_network.c:415,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:418,1
    - Dst: event_assign
      Src: /src/memcached/proxy_network.c:423,1
    - Dst: event_add
      Src: /src/memcached/proxy_network.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - be
    - base
    - flags
    - t
    - callback
    argTypes:
    - struct mcp_backendconn_s*
    - struct event_base*
    - int
    - struct timeval*
    - event_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: _set_main_event
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcmc_fd
    - event_assign
    - event_pending
    - event_del
    - event_add
    linkageType: ''
    returnType: void
    signature: void _set_main_event(struct mcp_backendconn_s *be, struct event_base
      *base, int flags, struct timeval *t, event_callback_fn callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/memcached/proxy_network.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: _stop_main_event
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - event_del
    linkageType: ''
    returnType: void
    signature: void _stop_main_event(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_pending
      Src: /src/memcached/proxy_network.c:433,1
    - Dst: event_add
      Src: /src/memcached/proxy_network.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: _start_write_event
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 2
    functionsReached:
    - event_pending
    - event_add
    linkageType: ''
    returnType: void
    signature: void _start_write_event(struct mcp_backendconn_s *be)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/memcached/proxy_network.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: _stop_write_event
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - event_del
    linkageType: ''
    returnType: void
    signature: void _stop_write_event(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_pending
      Src: /src/memcached/proxy_network.c:448,1
    - Dst: event_add
      Src: /src/memcached/proxy_network.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 453
    functionName: _start_timeout_event
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 2
    functionsReached:
    - event_pending
    - event_add
    linkageType: ''
    returnType: void
    signature: void _start_timeout_event(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_pending
      Src: /src/memcached/proxy_network.c:456,1
    - Dst: event_del
      Src: /src/memcached/proxy_network.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: _stop_timeout_event
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - event_pending
    - event_del
    linkageType: ''
    returnType: void
    signature: void _stop_timeout_event(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_network.c:465,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:465,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proxy_network.c:466,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:468,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:470,1
    - Dst: mcp_resp_set_elapsed
      Src: /src/memcached/proxy_network.c:472,1
    - Dst: conn_io_queue_return
      Src: /src/memcached/proxy_network.c:476,1
    - Dst: return_io_pending
      Src: /src/memcached/proxy_network.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - be
    - p
    argTypes:
    - struct mcp_backendconn_s*
    - io_pending_proxy_t*
    assertStmts:
    - condition: (!STAILQ_EMPTY(&be->iop_read))
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/memcached/proxy_network.c
    - condition: (be->pending_read > -1)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/memcached/proxy_network.c
    - condition: (be->depth > -1)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 481
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 481
    functionName: _drive_machine_next
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcp_resp_set_elapsed
    - STAILQ_EMPTY
    - return_io_pending
    - conn_io_queue_return
    - assert
    - STAILQ_REMOVE_HEAD
    linkageType: ''
    returnType: void
    signature: void _drive_machine_next(struct mcp_backendconn_s *be, io_pending_proxy_t
      *p)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:491,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:500,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:509,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/proxy_network.c:515,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:538,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:555,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:561,1
    - Dst: malloc
      Src: /src/memcached/proxy_network.c:573,1
    - Dst: free
      Src: /src/memcached/proxy_network.c:585,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:594,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:598,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:599,1
    - Dst: memcpy
      Src: /src/memcached/proxy_network.c:601,1
    - Dst: memcpy
      Src: /src/memcached/proxy_network.c:611,1
    - Dst: memmove
      Src: /src/memcached/proxy_network.c:617,1
    - Dst: memcmp
      Src: /src/memcached/proxy_network.c:627,1
    - Dst: memcpy
      Src: /src/memcached/proxy_network.c:634,1
    - Dst: memmove
      Src: /src/memcached/proxy_network.c:640,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:657,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:658,1
    - Dst: memcpy
      Src: /src/memcached/proxy_network.c:661,1
    - Dst: memmove
      Src: /src/memcached/proxy_network.c:675,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:678,1
    - Dst: _drive_machine_next
      Src: /src/memcached/proxy_network.c:687,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:689,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:698,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:704,1
    - Dst: _drive_machine_next
      Src: /src/memcached/proxy_network.c:716,1
    - Dst: fprintf
      Src: /src/memcached/proxy_network.c:725,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:726,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 160
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/memcached/proxy_network.c
    - condition: (false)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/memcached/proxy_network.c
    - condition: (be->rbufused == r->resp.reslen+r->resp.vlen_read)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/memcached/proxy_network.c
    - condition: (tocopy == be->rbufused)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/memcached/proxy_network.c
    - condition: (r->resp.vlen == 0)
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/memcached/proxy_network.c
    - condition: (be->rbufused != 0)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 731
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 731
    functionName: proxy_backend_drive_machine
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcmc_parse_buf
    - free
    - memmove
    - fprintf
    - STAILQ_EMPTY
    - malloc
    - memcmp
    - STAILQ_FIRST
    - assert
    - P_DEBUG
    - _drive_machine_next
    - memcpy
    linkageType: ''
    returnType: int
    signature: int proxy_backend_drive_machine(struct mcp_backendconn_s *be)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_connect
      Src: /src/memcached/proxy_network.c:734,1
    - Dst: event_assign
      Src: /src/memcached/proxy_network.c:754,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 756
    functionName: _backend_reconnect
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcmc_fd
    - event_assign
    - mcmc_connect
    linkageType: ''
    returnType: void
    signature: void _backend_reconnect(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_network.c:761,1
    - Dst: _backend_reconnect
      Src: /src/memcached/proxy_network.c:763,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts:
    - condition: (which & EV_TIMEOUT)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 769
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 769
    functionName: proxy_backend_retry_handler
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - _backend_reconnect
    - assert
    - _set_main_event
    linkageType: ''
    returnType: void
    signature: void proxy_backend_retry_handler(const int fd, const short which, void
      *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:800,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_network.c:801,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_network.c:802,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_network.c:804,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:807,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_network.c:810,1
    - Dst: _backend_reconnect
      Src: /src/memcached/proxy_network.c:811,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:816,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 818
    functionName: _backend_reschedule
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcp_sharedvm_delta
    - LOGGER_LOG
    - _backend_reconnect
    - P_DEBUG
    - STAT_INCR
    - _set_main_event
    linkageType: ''
    returnType: void
    signature: void _backend_reschedule(struct mcp_backendconn_s *be)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/memcached/proxy_network.c:832,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - be
    - err
    argTypes:
    - struct mcp_backendconn_s*
    - enum proxy_be_failures
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 858
    functionName: _backend_flap_check
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void _backend_flap_check(struct mcp_backendconn_s *be, enum proxy_be_failures
      err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:870,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:870,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:874,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:875,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proxy_network.c:876,1
    - Dst: mcp_resp_set_elapsed
      Src: /src/memcached/proxy_network.c:878,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:882,1
    - Dst: return_io_pending
      Src: /src/memcached/proxy_network.c:883,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:886,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:887,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proxy_network.c:888,1
    - Dst: mcp_resp_set_elapsed
      Src: /src/memcached/proxy_network.c:890,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:894,1
    - Dst: return_io_pending
      Src: /src/memcached/proxy_network.c:895,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_network.c:898,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_network.c:899,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_network.c:903,1
    - Dst: _stop_write_event
      Src: /src/memcached/proxy_network.c:910,1
    - Dst: _stop_main_event
      Src: /src/memcached/proxy_network.c:911,1
    - Dst: _stop_timeout_event
      Src: /src/memcached/proxy_network.c:912,1
    - Dst: mcp_tls_shutdown
      Src: /src/memcached/proxy_network.c:913,1
    - Dst: mcmc_disconnect
      Src: /src/memcached/proxy_network.c:914,1
    - Dst: _backend_flap_check
      Src: /src/memcached/proxy_network.c:919,1
    - Dst: _backend_reschedule
      Src: /src/memcached/proxy_network.c:920,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 2
    argNames:
    - be
    - err
    argTypes:
    - struct mcp_backendconn_s*
    - enum proxy_be_failures
    assertStmts:
    - condition: (be->depth > -1)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/memcached/proxy_network.c
    - condition: (be->depth > -1)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 921
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 921
    functionName: _reset_bad_backend
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 4
    functionsReached:
    - _stop_main_event
    - mcp_resp_set_elapsed
    - STAILQ_INIT
    - mcmc_disconnect
    - STAILQ_EMPTY
    - return_io_pending
    - _stop_timeout_event
    - _backend_flap_check
    - mcmc_fd
    - LOGGER_LOG
    - STAILQ_FIRST
    - mcp_tls_shutdown
    - assert
    - STAILQ_REMOVE_HEAD
    - _backend_reschedule
    - P_DEBUG
    - _stop_write_event
    linkageType: ''
    returnType: void
    signature: void _reset_bad_backend(struct mcp_backendconn_s *be, enum proxy_be_failures
      err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:927,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:928,1
    - Dst: STAILQ_NEXT
      Src: /src/memcached/proxy_network.c:929,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:930,1
    - Dst: memcpy
      Src: /src/memcached/proxy_network.c:938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - be
    - count
    - bytes
    - iov_limit
    argTypes:
    - struct mcp_backendconn_s*
    - int*
    - int*
    - bool*
    assertStmts:
    - condition: (io != NULL)
      pos:
        line_end: 927
        line_start: 927
        source_file: /src/memcached/proxy_network.c
    - condition: (io->flushed == false)
      pos:
        line_end: 929
        line_start: 929
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 944
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 944
    functionName: _prep_pending_write
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - memcpy
    - STAILQ_FIRST
    - assert
    - STAILQ_NEXT
    linkageType: ''
    returnType: int
    signature: int _prep_pending_write(struct mcp_backendconn_s *be, int *count, int
      *bytes, bool *iov_limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:948,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:950,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proxy_network.c:951,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:953,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proxy_network.c:976,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_network.c:977,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:983,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - be
    - sent
    argTypes:
    - struct mcp_backendconn_s*
    - ssize_t
    assertStmts:
    - condition: (io->flushed == false)
      pos:
        line_end: 952
        line_start: 952
        source_file: /src/memcached/proxy_network.c
    - condition: (sent >= 0)
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 987
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 987
    functionName: _post_pending_write
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - STAILQ_EMPTY
    - STAILQ_INSERT_TAIL
    - STAILQ_FIRST
    - assert
    - STAILQ_REMOVE_HEAD
    linkageType: ''
    returnType: void
    signature: void _post_pending_write(struct mcp_backendconn_s *be, ssize_t sent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:993,1
    - Dst: _prep_pending_write
      Src: /src/memcached/proxy_network.c:999,1
    - Dst: writev
      Src: /src/memcached/proxy_network.c:1001,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:1001,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proxy_network.c:1006,1
    - Dst: _post_pending_write
      Src: /src/memcached/proxy_network.c:1008,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:1010,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1026
    functionName: _flush_pending_write
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 2
    functionsReached:
    - STAILQ_EMPTY
    - _post_pending_write
    - mcmc_fd
    - STAILQ_CONCAT
    - _prep_pending_write
    - writev
    linkageType: ''
    returnType: int
    signature: int _flush_pending_write(struct mcp_backendconn_s *be)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:1032,1
    - Dst: _prep_pending_write
      Src: /src/memcached/proxy_network.c:1038,1
    - Dst: mcp_tls_writev
      Src: /src/memcached/proxy_network.c:1040,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proxy_network.c:1045,1
    - Dst: _post_pending_write
      Src: /src/memcached/proxy_network.c:1047,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:1049,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1065
    functionName: _flush_pending_tls_write
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 2
    functionsReached:
    - STAILQ_EMPTY
    - _post_pending_write
    - STAILQ_CONCAT
    - mcp_tls_writev
    - _prep_pending_write
    linkageType: ''
    returnType: int
    signature: int _flush_pending_tls_write(struct mcp_backendconn_s *be)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_network.c:1068,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:1074,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:1074,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1076,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1078,1
    - Dst: mcp_tls_read
      Src: /src/memcached/proxy_network.c:1084,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/proxy_network.c:1089,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1094,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1098,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1103,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1111,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1115,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1119,1
    - Dst: _flush_pending_tls_write
      Src: /src/memcached/proxy_network.c:1124,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1126,1
    - Dst: _start_write_event
      Src: /src/memcached/proxy_network.c:1130,1
    - Dst: _start_timeout_event
      Src: /src/memcached/proxy_network.c:1133,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1139,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_network.c:1147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 1067
        line_start: 1067
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 1153
      start: 1067
    functionDepth: 4
    functionLinenumber: 1067
    functionLinenumberEnd: 1153
    functionName: proxy_bevalidate_tls_handler
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcmc_parse_buf
    - mcp_sharedvm_delta
    - mcmc_fd
    - _reset_bad_backend
    - assert
    - _start_timeout_event
    - mcp_tls_read
    - P_DEBUG
    - _flush_pending_tls_write
    - _start_write_event
    - _set_main_event
    linkageType: ''
    returnType: void
    signature: void proxy_bevalidate_tls_handler(const int fd, const short which,
      void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_network.c:1158,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:1164,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:1164,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1166,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1168,1
    - Dst: _proxy_beconn_checkconnect
      Src: /src/memcached/proxy_network.c:1177,1
    - Dst: mcp_tls_connect
      Src: /src/memcached/proxy_network.c:1181,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:1186,1
    - Dst: mcp_tls_handshake
      Src: /src/memcached/proxy_network.c:1187,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1190,1
    - Dst: mcp_tls_send_validate
      Src: /src/memcached/proxy_network.c:1194,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1195,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1200,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1203,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 1157
        line_start: 1157
        source_file: /src/memcached/proxy_network.c
    - condition: (be->validating)
      pos:
        line_end: 1185
        line_start: 1185
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 1206
      start: 1157
    functionDepth: 4
    functionLinenumber: 1157
    functionLinenumberEnd: 1206
    functionName: proxy_beconn_tls_handler
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - _proxy_beconn_checkconnect
    - mcmc_fd
    - _reset_bad_backend
    - mcp_tls_connect
    - mcp_tls_send_validate
    - assert
    - P_DEBUG
    - mcp_tls_handshake
    - _set_main_event
    linkageType: ''
    returnType: void
    signature: void proxy_beconn_tls_handler(const int fd, const short which, void
      *arg)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_network.c:1210,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:1216,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:1216,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1218,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1220,1
    - Dst: _proxy_beconn_checkconnect
      Src: /src/memcached/proxy_network.c:1229,1
    - Dst: _beconn_send_validate
      Src: /src/memcached/proxy_network.c:1232,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1233,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1236,1
    - Dst: _flush_pending_write
      Src: /src/memcached/proxy_network.c:1241,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1243,1
    - Dst: assert
      Src: /src/memcached/proxy_network.c:1252,1
    - Dst: recv
      Src: /src/memcached/proxy_network.c:1254,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:1254,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/proxy_network.c:1259,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1264,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1268,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1273,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1281,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1286,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1289,1
    - Dst: _flush_pending_write
      Src: /src/memcached/proxy_network.c:1294,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1296,1
    - Dst: _start_write_event
      Src: /src/memcached/proxy_network.c:1300,1
    - Dst: _start_timeout_event
      Src: /src/memcached/proxy_network.c:1303,1
    - Dst: _set_main_event
      Src: /src/memcached/proxy_network.c:1309,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_network.c:1317,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 1209
        line_start: 1209
        source_file: /src/memcached/proxy_network.c
    - condition: (be->validating)
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/memcached/proxy_network.c
    constantsTouched: []
    func_position:
      end: 1323
      start: 1209
    functionDepth: 4
    functionLinenumber: 1209
    functionLinenumberEnd: 1323
    functionName: proxy_beconn_handler
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - mcmc_parse_buf
    - _proxy_beconn_checkconnect
    - mcp_sharedvm_delta
    - mcmc_fd
    - _reset_bad_backend
    - _flush_pending_write
    - _beconn_send_validate
    - assert
    - _start_timeout_event
    - P_DEBUG
    - _start_write_event
    - recv
    - _set_main_event
    linkageType: ''
    returnType: void
    signature: void proxy_beconn_handler(const int fd, const short which, void *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:1329,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1330,1
    - Dst: _flush_pending_tls_write
      Src: /src/memcached/proxy_network.c:1336,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1338,1
    - Dst: _start_write_event
      Src: /src/memcached/proxy_network.c:1342,1
    - Dst: _stop_timeout_event
      Src: /src/memcached/proxy_network.c:1348,1
    - Dst: mcp_tls_read
      Src: /src/memcached/proxy_network.c:1351,1
    - Dst: proxy_backend_drive_machine
      Src: /src/memcached/proxy_network.c:1353,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1355,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1360,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1366,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:1371,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:1372,1
    - Dst: _start_timeout_event
      Src: /src/memcached/proxy_network.c:1378,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1325
    functionDepth: 4
    functionLinenumber: 1325
    functionLinenumberEnd: 1380
    functionName: proxy_backend_tls_handler
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - STAILQ_EMPTY
    - _stop_timeout_event
    - proxy_backend_drive_machine
    - _reset_bad_backend
    - _start_timeout_event
    - mcp_tls_read
    - P_DEBUG
    - _flush_pending_tls_write
    - _start_write_event
    linkageType: ''
    returnType: void
    signature: void proxy_backend_tls_handler(const int fd, const short which, void
      *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:1389,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1390,1
    - Dst: _flush_pending_write
      Src: /src/memcached/proxy_network.c:1396,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1398,1
    - Dst: _start_write_event
      Src: /src/memcached/proxy_network.c:1402,1
    - Dst: _stop_timeout_event
      Src: /src/memcached/proxy_network.c:1408,1
    - Dst: recv
      Src: /src/memcached/proxy_network.c:1411,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_network.c:1411,1
    - Dst: proxy_backend_drive_machine
      Src: /src/memcached/proxy_network.c:1415,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1417,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1422,1
    - Dst: _reset_bad_backend
      Src: /src/memcached/proxy_network.c:1427,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proxy_network.c:1433,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_network.c:1434,1
    - Dst: _start_timeout_event
      Src: /src/memcached/proxy_network.c:1440,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1442
    functionName: proxy_backend_handler
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - STAILQ_EMPTY
    - _stop_timeout_event
    - proxy_backend_drive_machine
    - mcmc_fd
    - _reset_bad_backend
    - _flush_pending_write
    - _start_timeout_event
    - P_DEBUG
    - _start_write_event
    - recv
    linkageType: ''
    returnType: void
    signature: void proxy_backend_handler(const int fd, const short which, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/memcached/proxy_network.c:1447,1
    - Dst: perror
      Src: /src/memcached/proxy_network.c:1449,1
    - Dst: exit
      Src: /src/memcached/proxy_network.c:1450,1
    - Dst: eventfd
      Src: /src/memcached/proxy_network.c:1452,1
    - Dst: perror
      Src: /src/memcached/proxy_network.c:1454,1
    - Dst: exit
      Src: /src/memcached/proxy_network.c:1455,1
    - Dst: pipe
      Src: /src/memcached/proxy_network.c:1459,1
    - Dst: perror
      Src: /src/memcached/proxy_network.c:1460,1
    - Dst: exit
      Src: /src/memcached/proxy_network.c:1461,1
    - Dst: pipe
      Src: /src/memcached/proxy_network.c:1467,1
    - Dst: perror
      Src: /src/memcached/proxy_network.c:1468,1
    - Dst: exit
      Src: /src/memcached/proxy_network.c:1469,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_network.c:1476,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_network.c:1477,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proxy_network.c:1478,1
    - Dst: pthread_cond_init
      Src: /src/memcached/proxy_network.c:1479,1
    - Dst: fprintf
      Src: /src/memcached/proxy_network.c:1485,1
    - Dst: abort
      Src: /src/memcached/proxy_network.c:1486,1
    - Dst: event_config_new
      Src: /src/memcached/proxy_network.c:1492,1
    - Dst: event_config_set_flag
      Src: /src/memcached/proxy_network.c:1493,1
    - Dst: event_base_new_with_config
      Src: /src/memcached/proxy_network.c:1494,1
    - Dst: event_config_free
      Src: /src/memcached/proxy_network.c:1495,1
    - Dst: fprintf
      Src: /src/memcached/proxy_network.c:1497,1
    - Dst: exit
      Src: /src/memcached/proxy_network.c:1498,1
    - Dst: event_set
      Src: /src/memcached/proxy_network.c:1509,1
    - Dst: event_set
      Src: /src/memcached/proxy_network.c:1511,1
    - Dst: event_set
      Src: /src/memcached/proxy_network.c:1514,1
    - Dst: event_set
      Src: /src/memcached/proxy_network.c:1516,1
    - Dst: event_base_set
      Src: /src/memcached/proxy_network.c:1520,1
    - Dst: event_add
      Src: /src/memcached/proxy_network.c:1521,1
    - Dst: fprintf
      Src: /src/memcached/proxy_network.c:1522,1
    - Dst: exit
      Src: /src/memcached/proxy_network.c:1523,1
    - Dst: event_base_set
      Src: /src/memcached/proxy_network.c:1525,1
    - Dst: event_add
      Src: /src/memcached/proxy_network.c:1526,1
    - Dst: fprintf
      Src: /src/memcached/proxy_network.c:1527,1
    - Dst: exit
      Src: /src/memcached/proxy_network.c:1528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 3
    argNames:
    - t
    - ctx
    - base
    argTypes:
    - proxy_event_thread_t*
    - proxy_ctx_t*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1530
    functionName: proxy_init_event_thread
    functionSourceFile: /src/memcached/proxy_network.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    - fprintf
    - event_set
    - event_base_set
    - event_config_free
    - exit
    - pthread_mutex_init
    - eventfd
    - abort
    - event_base_new_with_config
    - pthread_cond_init
    - event_config_set_flag
    - event_config_new
    - perror
    - event_add
    - pipe
    linkageType: ''
    returnType: void
    signature: void proxy_init_event_thread(proxy_event_thread_t *t, proxy_ctx_t *ctx,
      struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_parser.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pr
    argTypes:
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: _process_request_key
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get
    linkageType: ''
    returnType: int
    signature: int _process_request_key(mcp_parser_t *pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:60,1
    - Dst: _process_request_key
      Src: /src/memcached/proto_parser.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pr
    argTypes:
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: _process_request_meta
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - mcmc_tokenize
    - _process_request_key
    linkageType: ''
    returnType: int
    signature: int _process_request_meta(mcp_parser_t *pr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:72,1
    - Dst: _process_request_key
      Src: /src/memcached/proto_parser.c:77,1
    - Dst: mcmc_token_get_32
      Src: /src/memcached/proto_parser.c:80,1
    - Dst: vlen < 0 || vlen >
      Src: /src/memcached/proto_parser.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pr
    argTypes:
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: _process_request_mset
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - vlen < 0 || vlen >
    - mcmc_tokenize
    - _process_request_key
    - mcmc_token_get_32
    linkageType: ''
    returnType: int
    signature: int _process_request_mset(mcp_parser_t *pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:96,1
    - Dst: _process_request_key
      Src: /src/memcached/proto_parser.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pr
    argTypes:
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: _process_request_gat
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - mcmc_tokenize
    - _process_request_key
    linkageType: ''
    returnType: int
    signature: int _process_request_gat(mcp_parser_t *pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_parser.c:112,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pr
    argTypes:
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: _process_request_noreply
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - strncmp
    - mcmc_token_get
    linkageType: ''
    returnType: int
    signature: int _process_request_noreply(mcp_parser_t *pr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:123,1
    - Dst: _process_request_key
      Src: /src/memcached/proto_parser.c:128,1
    - Dst: mcmc_token_get_32
      Src: /src/memcached/proto_parser.c:131,1
    - Dst: vlen < 0 || vlen >
      Src: /src/memcached/proto_parser.c:135,1
    - Dst: _process_request_noreply
      Src: /src/memcached/proto_parser.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pr
    argTypes:
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 143
    functionName: _process_request_storage
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - mcmc_tokenize
    - mcmc_token_get_32
    - vlen < 0 || vlen >
    - _process_request_noreply
    - _process_request_key
    linkageType: ''
    returnType: int
    signature: int _process_request_storage(mcp_parser_t *pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:147,1
    - Dst: _process_request_key
      Src: /src/memcached/proto_parser.c:153,1
    - Dst: _process_request_noreply
      Src: /src/memcached/proto_parser.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pr
    - min
    argTypes:
    - mcp_parser_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: _process_request_simple
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - _process_request_noreply
    - mcmc_tokenize
    - _process_request_key
    linkageType: ''
    returnType: int
    signature: int _process_request_simple(mcp_parser_t *pr, const int min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:158,1
    - Dst: _process_request_noreply
      Src: /src/memcached/proto_parser.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pr
    argTypes:
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: _process_request_unknown
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - _process_request_noreply
    - mcmc_tokenize
    linkageType: ''
    returnType: int
    signature: int _process_request_unknown(mcp_parser_t *pr)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_parser.c:179,1
    - Dst: memchr
      Src: /src/memcached/proto_parser.c:186,1
    - Dst: _process_request_meta
      Src: /src/memcached/proto_parser.c:211,1
    - Dst: _process_request_mset
      Src: /src/memcached/proto_parser.c:215,1
    - Dst: _process_request_meta
      Src: /src/memcached/proto_parser.c:219,1
    - Dst: _process_request_meta
      Src: /src/memcached/proto_parser.c:228,1
    - Dst: _process_request_meta
      Src: /src/memcached/proto_parser.c:233,1
    - Dst: _process_request_simple
      Src: /src/memcached/proto_parser.c:243,1
    - Dst: _process_request_gat
      Src: /src/memcached/proto_parser.c:248,1
    - Dst: _process_request_storage
      Src: /src/memcached/proto_parser.c:252,1
    - Dst: _process_request_storage
      Src: /src/memcached/proto_parser.c:255,1
    - Dst: _process_request_storage
      Src: /src/memcached/proto_parser.c:258,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:262,1
    - Dst: _process_request_simple
      Src: /src/memcached/proto_parser.c:265,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:266,1
    - Dst: _process_request_simple
      Src: /src/memcached/proto_parser.c:268,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:269,1
    - Dst: _process_request_simple
      Src: /src/memcached/proto_parser.c:271,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:272,1
    - Dst: _process_request_gat
      Src: /src/memcached/proto_parser.c:275,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:276,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:281,1
    - Dst: _process_request_simple
      Src: /src/memcached/proto_parser.c:283,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:284,1
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:287,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:288,1
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:290,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:294,1
    - Dst: _process_request_simple
      Src: /src/memcached/proto_parser.c:296,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:297,1
    - Dst: _process_request_storage
      Src: /src/memcached/proto_parser.c:299,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:303,1
    - Dst: _process_request_storage
      Src: /src/memcached/proto_parser.c:305,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:306,1
    - Dst: _process_request_storage
      Src: /src/memcached/proto_parser.c:308,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:309,1
    - Dst: mcmc_tokenize
      Src: /src/memcached/proto_parser.c:311,1
    - Dst: _process_request_unknown
      Src: /src/memcached/proto_parser.c:318,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 147
    argCount: 3
    argNames:
    - pr
    - command
    - cmdlen
    argTypes:
    - mcp_parser_t*
    - char*
    - size_t
    assertStmts:
    - condition: (cm[cmdlen-1] == '\n')
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 326
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 326
    functionName: process_request
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - _process_request_meta
    - mcmc_tokenize
    - strncmp
    - memchr
    - _process_request_mset
    - assert
    - _process_request_simple
    - _process_request_storage
    - _process_request_unknown
    - _process_request_gat
    linkageType: ''
    returnType: int
    signature: int process_request(mcp_parser_t *pr, const char *command, size_t cmdlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_parser.c:347,1
    - Dst: strncmp
      Src: /src/memcached/proto_parser.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pr
    - token
    - s
    argTypes:
    - mcp_parser_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: mc_prcmp
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 2
    functionsReached:
    - strncmp
    - mcmc_token_get
    linkageType: ''
    returnType: int
    signature: int mc_prcmp(mcp_parser_t *pr, int token, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get_u32
      Src: /src/memcached/proto_parser.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pr
    - token
    - val
    argTypes:
    - mcp_parser_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: mc_toktou32
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 3
    functionsReached:
    - mcmc_token_get_u32
    linkageType: ''
    returnType: bool
    signature: bool mc_toktou32(mcp_parser_t *pr, int token, uint32_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get_32
      Src: /src/memcached/proto_parser.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pr
    - token
    - val
    argTypes:
    - mcp_parser_t*
    - int
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: mc_tokto32
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 4
    functionsReached:
    - mcmc_token_get_32
    linkageType: ''
    returnType: bool
    signature: bool mc_tokto32(mcp_parser_t *pr, int token, int32_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get
      Src: /src/memcached/proto_parser.c:368,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:372,1
    - Dst: safe_strtod
      Src: /src/memcached/proto_parser.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pr
    - token
    - val
    argTypes:
    - mcp_parser_t*
    - int
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 376
    functionName: mc_toktod
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 3
    functionsReached:
    - mcmc_token_get
    - safe_strtod
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool mc_toktod(mcp_parser_t *pr, int token, double *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_parser.c:386,1
    - Dst: resp_reset
      Src: /src/memcached/proto_parser.c:390,1
    - Dst: strlen
      Src: /src/memcached/proto_parser.c:401,1
    - Dst: strlen
      Src: /src/memcached/proto_parser.c:405,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:408,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:409,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - resp
    - str
    argTypes:
    - mc_resp*
    - char*
    assertStmts:
    - condition: (resp != NULL)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 413
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 413
    functionName: pout_string
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - resp_reset
    - strlen
    - assert
    - resp_add_iov
    - memcpy
    linkageType: ''
    returnType: void
    signature: void pout_string(mc_resp *resp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - resp
    - str
    argTypes:
    - mc_resp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: pout_errstring
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - pout_string
    linkageType: ''
    returnType: void
    signature: void pout_errstring(mc_resp *resp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_strtol
      Src: /src/memcached/proto_parser.c:424,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:425,1
    - Dst: realtime
      Src: /src/memcached/proto_parser.c:428,1
    - Dst: EXPTIME_TO_POSITIVE_TIME
      Src: /src/memcached/proto_parser.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - resp
    - pr
    - token
    - exptime
    argTypes:
    - mc_resp*
    - mcp_parser_t*
    - int
    - rel_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: mc_parse_exptime
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - EXPTIME_TO_POSITIVE_TIME
    - realtime
    - safe_strtol
    - pout_string
    linkageType: ''
    returnType: bool
    signature: bool mc_parse_exptime(mc_resp *resp, mcp_parser_t *pr, int token, rel_time_t
      *exptime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pr
    - token
    argTypes:
    - mcp_parser_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 441
    functionName: _process_token_len
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _process_token_len(mcp_parser_t *pr, size_t token)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_schunk
      Src: /src/memcached/proto_parser.c:445,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:451,1
    - Dst: assert
      Src: /src/memcached/proto_parser.c:454,1
    - Dst: do_item_alloc_chunk
      Src: /src/memcached/proto_parser.c:457,1
    - Dst: assert
      Src: /src/memcached/proto_parser.c:465,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:467,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - d_it
    - buf
    - len
    argTypes:
    - item*
    - char*
    - int
    assertStmts:
    - condition: (len == done)
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/memcached/proto_parser.c
    - condition: (dch->used <= dch->size)
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 471
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 471
    functionName: _store_item_copy_from_buf
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - do_item_alloc_chunk
    - ITEM_data
    - assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _store_item_copy_from_buf(item *d_it, char *buf, const int len)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proto_parser.c:480,1
    - Dst: base64_decode
      Src: /src/memcached/proto_parser.c:507,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proto_parser.c:507,1
    - Dst: safe_strtol
      Src: /src/memcached/proto_parser.c:524,1
    - Dst: realtime
      Src: /src/memcached/proto_parser.c:528,1
    - Dst: EXPTIME_TO_POSITIVE_TIME
      Src: /src/memcached/proto_parser.c:528,1
    - Dst: safe_strtol
      Src: /src/memcached/proto_parser.c:533,1
    - Dst: realtime
      Src: /src/memcached/proto_parser.c:537,1
    - Dst: EXPTIME_TO_POSITIVE_TIME
      Src: /src/memcached/proto_parser.c:537,1
    - Dst: safe_strtol
      Src: /src/memcached/proto_parser.c:543,1
    - Dst: realtime
      Src: /src/memcached/proto_parser.c:547,1
    - Dst: EXPTIME_TO_POSITIVE_TIME
      Src: /src/memcached/proto_parser.c:547,1
    - Dst: safe_strtoflags
      Src: /src/memcached/proto_parser.c:581,1
    - Dst: safe_strtoull
      Src: /src/memcached/proto_parser.c:586,1
    - Dst: safe_strtoull
      Src: /src/memcached/proto_parser.c:594,1
    - Dst: safe_strtoull
      Src: /src/memcached/proto_parser.c:607,1
    - Dst: safe_strtoull
      Src: /src/memcached/proto_parser.c:613,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 131
    argCount: 5
    argNames:
    - pr
    - start
    - of
    - binkey
    - errstr
    argTypes:
    - mcp_parser_t*
    - size_t
    - struct _meta_flags*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 628
    functionName: _meta_flag_preparse
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - safe_strtol
    - base64_decode
    - safe_strtoflags
    - safe_strtoull
    - MCP_PARSER_KEY
    - EXPTIME_TO_POSITIVE_TIME
    - realtime
    linkageType: ''
    returnType: int
    signature: "int _meta_flag_preparse(mcp_parser_t *pr, const size_t start,\n        struct
      _meta_flags *of, char *binkey, char **errstr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAGS_SIZE
      Src: /src/memcached/proto_parser.c:635,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_parser.c:639,1
    - Dst: ITEM_suffix
      Src: /src/memcached/proto_parser.c:639,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:642,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_parser.c:646,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_parser.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - suffix
    - it
    - return_cas
    - nbytes
    argTypes:
    - char*
    - item*
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 653
    functionName: make_ascii_get_suffix
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - itoa_u64
    - ITEM_suffix
    - itoa_u32
    - FLAGS_SIZE
    - ITEM_get_cas
    linkageType: ''
    returnType: int
    signature: int make_ascii_get_suffix(char *suffix, item *it, bool return_cas,
      int nbytes)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:659,1
    - Dst: limited_get
      Src: /src/memcached/proto_parser.c:663,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/proto_parser.c:665,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:671,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:673,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_parser.c:673,1
    - Dst: make_ascii_get_suffix
      Src: /src/memcached/proto_parser.c:675,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:676,1
    - Dst: storage_cb
      Src: /src/memcached/proto_parser.c:680,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:681,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:683,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:685,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:686,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:690,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:690,1
    - Dst: resp_add_chunked_iov
      Src: /src/memcached/proto_parser.c:692,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:696,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:696,1
    - Dst: resp_add_chunked_iov
      Src: /src/memcached/proto_parser.c:698,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:703,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_parser.c:706,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:711,1
    - Dst: fprintf
      Src: /src/memcached/proto_parser.c:723,1
    - Dst: fprintf
      Src: /src/memcached/proto_parser.c:725,1
    - Dst: fprintf
      Src: /src/memcached/proto_parser.c:727,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:730,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:738,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 69
    argCount: 8
    argNames:
    - t
    - key
    - nkey
    - resp
    - storage_cb
    - exptime
    - return_cas
    - should_touch
    argTypes:
    - LIBEVENT_THREAD*
    - char*
    - int
    - mc_resp*
    - parser_storage_get_cb
    - rel_time_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 742
    functionName: process_get_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - pout_errstring
    - item_remove
    - ITEM_clsid
    - fprintf
    - storage_cb
    - ITEM_data
    - pthread_mutex_unlock
    - resp_add_chunked_iov
    - pthread_mutex_lock
    - make_ascii_get_suffix
    - stats_prefix_record_get
    - limited_get
    - pout_string
    - resp_add_iov
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: int
    signature: int process_get_cmd(LIBEVENT_THREAD *t, const char *key, const int
      nkey, mc_resp *resp, parser_storage_get_cb storage_cb, rel_time_t exptime, bool
      return_cas, bool should_touch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proto_parser.c:745,1
    - Dst: assert
      Src: /src/memcached/proto_parser.c:753,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:756,1
    - Dst: safe_strtoflags
      Src: /src/memcached/proto_parser.c:760,1
    - Dst: safe_strtol
      Src: /src/memcached/proto_parser.c:761,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:762,1
    - Dst: realtime
      Src: /src/memcached/proto_parser.c:766,1
    - Dst: EXPTIME_TO_POSITIVE_TIME
      Src: /src/memcached/proto_parser.c:766,1
    - Dst: safe_strtoull
      Src: /src/memcached/proto_parser.c:770,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:771,1
    - Dst: stats_prefix_record_set
      Src: /src/memcached/proto_parser.c:779,1
    - Dst: item_alloc
      Src: /src/memcached/proto_parser.c:782,1
    - Dst: item_size_ok
      Src: /src/memcached/proto_parser.c:786,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:787,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:789,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:791,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:793,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:795,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:797,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proto_parser.c:799,1
    - Dst: item_get
      Src: /src/memcached/proto_parser.c:805,1
    - Dst: item_unlink
      Src: /src/memcached/proto_parser.c:807,1
    - Dst: STORAGE_delete
      Src: /src/memcached/proto_parser.c:808,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:809,1
    - Dst: ITEM_set_cas
      Src: /src/memcached/proto_parser.c:815,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:817,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_parser.c:818,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:819,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 5
    argNames:
    - t
    - pr
    - resp
    - comm
    - handle_cas
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    - int
    - bool
    assertStmts:
    - condition: (resp != NULL)
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 822
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 822
    functionName: process_update_cmd_start
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - item_size_ok
    - item_unlink
    - safe_strtoull
    - item_remove
    - ITEM_clsid
    - safe_strtol
    - safe_strtoflags
    - LOGGER_LOG
    - MCP_PARSER_KEY
    - assert
    - ITEM_set_cas
    - item_get
    - pthread_mutex_lock
    - pout_string
    - item_alloc
    - STORAGE_delete
    - pthread_mutex_unlock
    - stats_prefix_record_set
    - EXPTIME_TO_POSITIVE_TIME
    - realtime
    linkageType: ''
    returnType: item
    signature: item *process_update_cmd_start(LIBEVENT_THREAD *t, mcp_parser_t *pr,
      mc_resp *resp, int comm, bool handle_cas)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: process_update_cmd_start
      Src: /src/memcached/proto_parser.c:825,1
    - Dst: _store_item_copy_from_buf
      Src: /src/memcached/proto_parser.c:831,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:832,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:833,1
    - Dst: store_item
      Src: /src/memcached/proto_parser.c:837,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_parser.c:837,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:840,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:843,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:846,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:849,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:852,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:856,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - t
    - pr
    - resp
    - comm
    - handle_cas
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 857
    functionName: process_update_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - store_item
    - item_remove
    - process_update_cmd_start
    - get_cas_id
    - pout_string
    - _store_item_copy_from_buf
    linkageType: ''
    returnType: void
    signature: void process_update_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp
      *resp, int comm, bool handle_cas)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proto_parser.c:862,1
    - Dst: assert
      Src: /src/memcached/proto_parser.c:865,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:868,1
    - Dst: safe_strtoull
      Src: /src/memcached/proto_parser.c:872,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:873,1
    - Dst: add_delta
      Src: /src/memcached/proto_parser.c:877,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:879,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:882,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:885,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:888,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:894,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:896,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - t
    - pr
    - resp
    - incr
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    - bool
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 901
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 901
    functionName: process_arithmetic_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - safe_strtoull
    - MCP_PARSER_KEY
    - add_delta
    - assert
    - pout_string
    linkageType: ''
    returnType: void
    signature: void process_arithmetic_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp
      *resp, const bool incr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proto_parser.c:904,1
    - Dst: assert
      Src: /src/memcached/proto_parser.c:909,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:918,1
    - Dst: stats_prefix_record_delete
      Src: /src/memcached/proto_parser.c:923,1
    - Dst: item_get_locked
      Src: /src/memcached/proto_parser.c:926,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:930,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_parser.c:931,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:932,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proto_parser.c:933,1
    - Dst: do_item_unlink
      Src: /src/memcached/proto_parser.c:934,1
    - Dst: STORAGE_delete
      Src: /src/memcached/proto_parser.c:935,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:936,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:937,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:939,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:941,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:943,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - t
    - pr
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 946
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 946
    functionName: process_delete_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - item_get_locked
    - ITEM_clsid
    - STORAGE_delete
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - LOGGER_LOG
    - MCP_PARSER_KEY
    - do_item_unlink
    - item_unlock
    - stats_prefix_record_delete
    - assert
    - pout_string
    - do_item_remove
    linkageType: ''
    returnType: void
    signature: void process_delete_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp
      *resp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proto_parser.c:949,1
    - Dst: assert
      Src: /src/memcached/proto_parser.c:955,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:958,1
    - Dst: safe_strtol
      Src: /src/memcached/proto_parser.c:962,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:963,1
    - Dst: realtime
      Src: /src/memcached/proto_parser.c:967,1
    - Dst: EXPTIME_TO_POSITIVE_TIME
      Src: /src/memcached/proto_parser.c:967,1
    - Dst: item_touch
      Src: /src/memcached/proto_parser.c:968,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:970,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_parser.c:972,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:973,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:975,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:976,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:978,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:981,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - t
    - pr
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 954
        line_start: 954
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 985
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 985
    functionName: process_touch_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - item_remove
    - ITEM_clsid
    - safe_strtol
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - MCP_PARSER_KEY
    - item_touch
    - assert
    - pout_string
    - EXPTIME_TO_POSITIVE_TIME
    - realtime
    linkageType: ''
    returnType: void
    signature: void process_touch_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp
      *resp)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_parser.c:999,1
    - Dst: _meta_flag_preparse
      Src: /src/memcached/proto_parser.c:1005,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1006,1
    - Dst: limited_get
      Src: /src/memcached/proto_parser.c:1016,1
    - Dst: limited_get_locked
      Src: /src/memcached/proto_parser.c:1019,1
    - Dst: assert
      Src: /src/memcached/proto_parser.c:1026,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1027,1
    - Dst: item_alloc
      Src: /src/memcached/proto_parser.c:1033,1
    - Dst: realtime
      Src: /src/memcached/proto_parser.c:1033,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1041,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:1041,1
    - Dst: do_item_link
      Src: /src/memcached/proto_parser.c:1043,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_parser.c:1043,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_parser.c:1051,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1056,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1057,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1059,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1086,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1087,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1092,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1098,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1102,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_parser.c:1103,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_parser.c:1103,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1106,1
    - Dst: FLAGS_SIZE
      Src: /src/memcached/proto_parser.c:1107,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_parser.c:1111,1
    - Dst: ITEM_suffix
      Src: /src/memcached/proto_parser.c:1111,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1115,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1116,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1119,1
    - Dst: _process_token_len
      Src: /src/memcached/proto_parser.c:1128,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_parser.c:1133,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1134,1
    - Dst: META_KEY
      Src: /src/memcached/proto_parser.c:1138,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_parser.c:1138,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1147,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1150,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1160,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:1169,1
    - Dst: storage_cb
      Src: /src/memcached/proto_parser.c:1174,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1175,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1177,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:1182,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:1182,1
    - Dst: resp_add_chunked_iov
      Src: /src/memcached/proto_parser.c:1184,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:1188,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:1188,1
    - Dst: resp_add_chunked_iov
      Src: /src/memcached/proto_parser.c:1190,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1207,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:1209,1
    - Dst: do_item_bump
      Src: /src/memcached/proto_parser.c:1222,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:1224,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1230,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_parser.c:1233,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1238,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1240,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1248,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1253,1
    - Dst: _process_token_len
      Src: /src/memcached/proto_parser.c:1259,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_parser.c:1264,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1265,1
    - Dst: META_KEY
      Src: /src/memcached/proto_parser.c:1269,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1274,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:1276,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1281,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:1283,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1286,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 226
    argCount: 4
    argNames:
    - t
    - pr
    - resp
    - storage_cb
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    - parser_storage_get_cb
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/memcached/proto_parser.c
    - condition: (it == NULL)
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 1287
      start: 987
    functionDepth: 3
    functionLinenumber: 987
    functionLinenumberEnd: 1287
    functionName: process_mget_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - _meta_flag_preparse
    - itoa_u64
    - get_cas_id
    - _process_token_len
    - do_item_link
    - item_remove
    - do_item_bump
    - ITEM_clsid
    - storage_cb
    - ITEM_data
    - ITEM_suffix
    - assert
    - resp_add_iov
    - limited_get_locked
    - META_CHAR
    - pthread_mutex_lock
    - item_unlock
    - limited_get
    - FLAGS_SIZE
    - ITEM_get_cas
    - META_SPACE
    - memcpy
    - pout_errstring
    - item_alloc
    - do_item_remove
    - pthread_mutex_unlock
    - resp_add_chunked_iov
    - itoa_u32
    - realtime
    - ITEM_key
    - META_KEY
    linkageType: ''
    returnType: void
    signature: "void process_mget_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp
      *resp,\n        parser_storage_get_cb storage_cb)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_parser.c:1298,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:1301,1
    - Dst: _meta_flag_preparse
      Src: /src/memcached/proto_parser.c:1308,1
    - Dst: item_alloc
      Src: /src/memcached/proto_parser.c:1360,1
    - Dst: item_size_ok
      Src: /src/memcached/proto_parser.c:1364,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1367,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1369,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1373,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1375,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proto_parser.c:1378,1
    - Dst: item_get_locked
      Src: /src/memcached/proto_parser.c:1383,1
    - Dst: do_item_unlink
      Src: /src/memcached/proto_parser.c:1385,1
    - Dst: STORAGE_delete
      Src: /src/memcached/proto_parser.c:1386,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1387,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:1389,1
    - Dst: ITEM_set_cas
      Src: /src/memcached/proto_parser.c:1393,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1408,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_parser.c:1409,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1410,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1420,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 94
    argCount: 6
    argNames:
    - t
    - pr
    - resp
    - cas_in
    - has_cas_in
    - comm
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    - uint64_t*
    - bool*
    - short*
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 1297
        line_start: 1297
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 1422
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1422
    functionName: process_mset_cmd_start
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - ITEM_set_cas
    - item_size_ok
    - item_alloc
    - item_get_locked
    - ITEM_clsid
    - do_item_remove
    - pout_errstring
    - STORAGE_delete
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - LOGGER_LOG
    - do_item_unlink
    - item_unlock
    - assert
    - pout_string
    - _meta_flag_preparse
    linkageType: ''
    returnType: item
    signature: "item *process_mset_cmd_start(LIBEVENT_THREAD *t, mcp_parser_t *pr,
      mc_resp *resp,\n        uint64_t *cas_in, bool *has_cas_in, short *comm)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: process_mset_cmd_start
      Src: /src/memcached/proto_parser.c:1428,1
    - Dst: _store_item_copy_from_buf
      Src: /src/memcached/proto_parser.c:1436,1
    - Dst: pout_string
      Src: /src/memcached/proto_parser.c:1437,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:1438,1
    - Dst: store_item
      Src: /src/memcached/proto_parser.c:1445,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_parser.c:1445,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1448,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1455,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1458,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1461,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1464,1
    - Dst: _process_token_len
      Src: /src/memcached/proto_parser.c:1474,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_parser.c:1479,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1480,1
    - Dst: META_KEY
      Src: /src/memcached/proto_parser.c:1484,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_parser.c:1484,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1487,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_parser.c:1488,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1492,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1495,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1497,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1506,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:1510,1
    - Dst: item_remove
      Src: /src/memcached/proto_parser.c:1512,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1518,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 3
    argNames:
    - t
    - pr
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1424
    functionDepth: 4
    functionLinenumber: 1424
    functionLinenumberEnd: 1519
    functionName: process_mset_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 0
    functionsReached:
    - pout_errstring
    - store_item
    - item_remove
    - itoa_u64
    - process_mset_cmd_start
    - get_cas_id
    - META_CHAR
    - itoa_u32
    - _process_token_len
    - pout_string
    - META_SPACE
    - META_KEY
    - _store_item_copy_from_buf
    - resp_add_iov
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void process_mset_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp
      *resp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_parser.c:1528,1
    - Dst: _meta_flag_preparse
      Src: /src/memcached/proto_parser.c:1535,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1536,1
    - Dst: _process_token_len
      Src: /src/memcached/proto_parser.c:1548,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_parser.c:1553,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1554,1
    - Dst: META_KEY
      Src: /src/memcached/proto_parser.c:1558,1
    - Dst: item_get_locked
      Src: /src/memcached/proto_parser.c:1563,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_parser.c:1566,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1567,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1569,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1571,1
    - Dst: item_alloc
      Src: /src/memcached/proto_parser.c:1577,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1579,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:1579,1
    - Dst: do_store_item
      Src: /src/memcached/proto_parser.c:1580,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_parser.c:1581,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1582,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1585,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1586,1
    - Dst: ITEM_set_cas
      Src: /src/memcached/proto_parser.c:1606,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_parser.c:1606,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1610,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1612,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_parser.c:1613,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1614,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proto_parser.c:1615,1
    - Dst: do_item_unlink
      Src: /src/memcached/proto_parser.c:1618,1
    - Dst: STORAGE_delete
      Src: /src/memcached/proto_parser.c:1619,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1623,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1627,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1629,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1631,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1636,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:1639,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1641,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:1643,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1649,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:1650,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1652,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 103
    argCount: 3
    argNames:
    - t
    - pr
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 1527
        line_start: 1527
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 1653
      start: 1521
    functionDepth: 3
    functionLinenumber: 1521
    functionLinenumberEnd: 1653
    functionName: process_mdelete_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - _meta_flag_preparse
    - item_get_locked
    - get_cas_id
    - do_item_unlink
    - _process_token_len
    - ITEM_clsid
    - ITEM_data
    - LOGGER_LOG
    - assert
    - resp_add_iov
    - ITEM_set_cas
    - do_store_item
    - pthread_mutex_lock
    - item_unlock
    - META_SPACE
    - ITEM_get_cas
    - memcpy
    - pout_errstring
    - item_alloc
    - STORAGE_delete
    - pthread_mutex_unlock
    - do_item_remove
    - META_KEY
    linkageType: ''
    returnType: void
    signature: void process_mdelete_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp
      *resp)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_parser.c:1660,1
    - Dst: _meta_flag_preparse
      Src: /src/memcached/proto_parser.c:1675,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1676,1
    - Dst: hash
      Src: /src/memcached/proto_parser.c:1704,1
    - Dst: item_lock
      Src: /src/memcached/proto_parser.c:1705,1
    - Dst: do_add_delta
      Src: /src/memcached/proto_parser.c:1713,1
    - Dst: ITEM_set_cas
      Src: /src/memcached/proto_parser.c:1721,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_parser.c:1723,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_parser.c:1735,1
    - Dst: strlen
      Src: /src/memcached/proto_parser.c:1736,1
    - Dst: item_alloc
      Src: /src/memcached/proto_parser.c:1738,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1740,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:1740,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1741,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_parser.c:1741,1
    - Dst: do_store_item
      Src: /src/memcached/proto_parser.c:1742,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_parser.c:1743,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1749,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_parser.c:1756,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_parser.c:1762,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1764,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1770,1
    - Dst: strlen
      Src: /src/memcached/proto_parser.c:1779,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1781,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1782,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1784,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1791,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_parser.c:1792,1
    - Dst: META_CHAR
      Src: /src/memcached/proto_parser.c:1795,1
    - Dst: itoa_u32
      Src: /src/memcached/proto_parser.c:1801,1
    - Dst: _process_token_len
      Src: /src/memcached/proto_parser.c:1813,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_parser.c:1818,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1819,1
    - Dst: META_KEY
      Src: /src/memcached/proto_parser.c:1823,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1832,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1836,1
    - Dst: _process_token_len
      Src: /src/memcached/proto_parser.c:1842,1
    - Dst: META_SPACE
      Src: /src/memcached/proto_parser.c:1847,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1848,1
    - Dst: META_KEY
      Src: /src/memcached/proto_parser.c:1852,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:1858,1
    - Dst: memcpy
      Src: /src/memcached/proto_parser.c:1861,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_parser.c:1863,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_parser.c:1867,1
    - Dst: item_unlock
      Src: /src/memcached/proto_parser.c:1869,1
    - Dst: pout_errstring
      Src: /src/memcached/proto_parser.c:1870,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 172
    argCount: 3
    argNames:
    - t
    - pr
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/memcached/proto_parser.c
    constantsTouched: []
    func_position:
      end: 1871
      start: 1655
    functionDepth: 3
    functionLinenumber: 1655
    functionLinenumberEnd: 1871
    functionName: process_marithmetic_cmd
    functionSourceFile: /src/memcached/proto_parser.c
    functionUses: 1
    functionsReached:
    - itoa_u64
    - get_cas_id
    - strlen
    - _process_token_len
    - ITEM_data
    - hash
    - assert
    - resp_add_iov
    - item_lock
    - ITEM_set_cas
    - do_store_item
    - pthread_mutex_lock
    - META_CHAR
    - item_unlock
    - META_SPACE
    - ITEM_get_cas
    - memcpy
    - pout_errstring
    - item_alloc
    - do_item_remove
    - pthread_mutex_unlock
    - itoa_u32
    - do_add_delta
    - _meta_flag_preparse
    - META_KEY
    linkageType: ''
    returnType: void
    signature: void process_marithmetic_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr,
      mc_resp *resp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/memcached/linux_priv.c:33,1
    - Dst: strlen
      Src: /src/memcached/linux_priv.c:33,1
    - Dst: _exit
      Src: /src/memcached/linux_priv.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - signum
    - si
    - thread_context
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 43
    functionName: handle_syssig
    functionSourceFile: /src/memcached/linux_priv.c
    functionUses: 0
    functionsReached:
    - write
    - strlen
    - _exit
    linkageType: ''
    returnType: void
    signature: void handle_syssig(int signum, siginfo_t *si, void *thread_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/linux_priv.c:51,1
    - Dst: strlen
      Src: /src/memcached/linux_priv.c:51,1
    - Dst: strncpy
      Src: /src/memcached/linux_priv.c:52,1
    - Dst: strlen
      Src: /src/memcached/linux_priv.c:52,1
    - Dst: sigaction
      Src: /src/memcached/linux_priv.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: setup_privilege_violations_handler
    functionSourceFile: /src/memcached/linux_priv.c
    functionUses: 0
    functionsReached:
    - malloc
    - strlen
    - sigaction
    - strncpy
    linkageType: ''
    returnType: void
    signature: void setup_privilege_violations_handler(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_init
      Src: /src/memcached/linux_priv.c:61,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:67,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:67,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:68,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:68,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:69,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:69,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:70,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:70,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:71,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:71,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:72,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:72,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:73,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:73,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:74,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:74,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:75,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:75,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:76,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:76,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:77,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:77,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:78,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:78,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:79,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:79,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:80,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:80,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:81,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:81,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:82,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:82,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:83,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:83,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:84,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:84,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:85,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:85,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:86,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:86,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:87,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:87,1
    - Dst: SCMP_A1
      Src: /src/memcached/linux_priv.c:87,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:88,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:88,1
    - Dst: SCMP_A1
      Src: /src/memcached/linux_priv.c:88,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:89,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:89,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:90,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:90,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:93,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:93,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:95,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:95,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:98,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:98,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:99,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:99,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:100,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:100,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:101,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:101,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:102,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:102,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:103,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:103,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:106,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:106,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:107,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:107,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:108,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:108,1
    - Dst: seccomp_load
      Src: /src/memcached/linux_priv.c:116,1
    - Dst: seccomp_release
      Src: /src/memcached/linux_priv.c:121,1
    - Dst: seccomp_release
      Src: /src/memcached/linux_priv.c:125,1
    - Dst: fprintf
      Src: /src/memcached/linux_priv.c:126,1
    - Dst: exit
      Src: /src/memcached/linux_priv.c:127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 128
    functionName: drop_privileges
    functionSourceFile: /src/memcached/linux_priv.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SCMP_SYS
    - seccomp_load
    - seccomp_init
    - exit
    - SCMP_A1
    - seccomp_rule_add
    - seccomp_release
    linkageType: ''
    returnType: void
    signature: void drop_privileges(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_init
      Src: /src/memcached/linux_priv.c:131,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:137,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:137,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:138,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:138,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:139,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:139,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:140,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:140,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:141,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:141,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:142,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:142,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:143,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:143,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:144,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:144,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:145,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:145,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:146,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:146,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:147,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:147,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:148,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:148,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:149,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:149,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:150,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:150,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:151,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:151,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:152,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:152,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:153,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:153,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:154,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:154,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:155,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:155,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:156,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:156,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:157,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:157,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:158,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:158,1
    - Dst: SCMP_A1
      Src: /src/memcached/linux_priv.c:158,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:159,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:159,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:162,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:162,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:163,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:163,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:164,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:164,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:165,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:165,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:168,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:168,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:169,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:169,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:172,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:172,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:173,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:173,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:174,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:174,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:175,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:175,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:176,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:176,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:177,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:177,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:181,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:181,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:182,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:182,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:183,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:183,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:184,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:184,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:185,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:185,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:186,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:186,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:187,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:187,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:188,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:188,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:189,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:189,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:192,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:192,1
    - Dst: SCMP_A0
      Src: /src/memcached/linux_priv.c:192,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:193,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:193,1
    - Dst: SCMP_A0
      Src: /src/memcached/linux_priv.c:193,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:195,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:195,1
    - Dst: SCMP_A0
      Src: /src/memcached/linux_priv.c:195,1
    - Dst: seccomp_rule_add
      Src: /src/memcached/linux_priv.c:196,1
    - Dst: SCMP_SYS
      Src: /src/memcached/linux_priv.c:196,1
    - Dst: SCMP_A0
      Src: /src/memcached/linux_priv.c:196,1
    - Dst: seccomp_load
      Src: /src/memcached/linux_priv.c:203,1
    - Dst: seccomp_release
      Src: /src/memcached/linux_priv.c:208,1
    - Dst: seccomp_release
      Src: /src/memcached/linux_priv.c:212,1
    - Dst: fprintf
      Src: /src/memcached/linux_priv.c:213,1
    - Dst: exit
      Src: /src/memcached/linux_priv.c:214,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 215
    functionName: drop_worker_privileges
    functionSourceFile: /src/memcached/linux_priv.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SCMP_SYS
    - seccomp_init
    - seccomp_load
    - exit
    - SCMP_A1
    - SCMP_A0
    - seccomp_rule_add
    - seccomp_release
    linkageType: ''
    returnType: void
    signature: void drop_worker_privileges(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sandbox_init
      Src: /src/memcached/darwin_priv.c:17,1
    - Dst: fprintf
      Src: /src/memcached/darwin_priv.c:18,1
    - Dst: sandbox_free_error
      Src: /src/memcached/darwin_priv.c:19,1
    - Dst: exit
      Src: /src/memcached/darwin_priv.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: drop_privileges
    functionSourceFile: /src/memcached/darwin_priv.c
    functionUses: 0
    functionsReached:
    - exit
    - sandbox_init
    - sandbox_free_error
    - fprintf
    linkageType: ''
    returnType: void
    signature: void drop_privileges(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: setup_privilege_violations_handler
    functionSourceFile: /src/memcached/darwin_priv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_privilege_violations_handler(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/memcached/authfile.c:36,1
    - Dst: fstat
      Src: /src/memcached/authfile.c:39,1
    - Dst: fileno
      Src: /src/memcached/authfile.c:39,1
    - Dst: fclose
      Src: /src/memcached/authfile.c:40,1
    - Dst: calloc
      Src: /src/memcached/authfile.c:44,1
    - Dst: fgets
      Src: /src/memcached/authfile.c:54,1
    - Dst: fclose
      Src: /src/memcached/authfile.c:82,1
    - Dst: free
      Src: /src/memcached/authfile.c:83,1
    - Dst: free
      Src: /src/memcached/authfile.c:102,1
    - Dst: memcpy
      Src: /src/memcached/authfile.c:107,1
    - Dst: fclose
      Src: /src/memcached/authfile.c:109,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 112
    functionName: authfile_load
    functionSourceFile: /src/memcached/authfile.c
    functionUses: 0
    functionsReached:
    - fopen
    - fclose
    - free
    - fgets
    - fileno
    - fstat
    - calloc
    - memcpy
    linkageType: ''
    returnType: enum authfile_ret
    signature: enum authfile_ret authfile_load(const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_memcmp
      Src: /src/memcached/authfile.c:120,1
    - Dst: safe_memcmp
      Src: /src/memcached/authfile.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - user
    - ulen
    - pass
    - plen
    argTypes:
    - char*
    - unsigned int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: authfile_check
    functionSourceFile: /src/memcached/authfile.c
    functionUses: 1
    functionsReached:
    - safe_memcmp
    linkageType: ''
    returnType: int
    signature: int authfile_check(const char *user, unsigned int ulen, const char
      *pass, unsigned int plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_init
      Src: /src/memcached/proxy_ring_hash.c:58,1
    - Dst: md5_append
      Src: /src/memcached/proxy_ring_hash.c:59,1
    - Dst: strlen
      Src: /src/memcached/proxy_ring_hash.c:59,1
    - Dst: md5_finish
      Src: /src/memcached/proxy_ring_hash.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inString
    - md5pword
    argTypes:
    - char*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: ketama_md5_digest
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - strlen
    - md5_init
    - md5_finish
    - md5_append
    linkageType: ''
    returnType: void
    signature: void ketama_md5_digest( char* inString, unsigned char md5pword[16]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: ketama_compare
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ketama_compare(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_init
      Src: /src/memcached/proxy_ring_hash.c:76,1
    - Dst: md5_append
      Src: /src/memcached/proxy_ring_hash.c:77,1
    - Dst: md5_finish
      Src: /src/memcached/proxy_ring_hash.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 86
    functionName: ketama_key_hasher
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - md5_init
    - md5_finish
    - md5_append
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ketama_key_hasher(const void *key, size_t len, uint64_t seed)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - hash
    - ctx
    argTypes:
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 119
    functionName: ketama_get_server
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ketama_get_server(uint64_t hash, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/proxy_ring_hash.c:132,1
    - Dst: snprintf
      Src: /src/memcached/proxy_ring_hash.c:135,1
    - Dst: XXH3_64bits
      Src: /src/memcached/proxy_ring_hash.c:136,1
    - Dst: free
      Src: /src/memcached/proxy_ring_hash.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - kt
    - hashstring_size
    - parts
    - bucket_size
    - id
    - cont
    argTypes:
    - ketama_t*
    - size_t
    - char**
    - lua_Integer
    - lua_Integer
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: _add_server_default
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - malloc
    - XXH3_64bits
    - free
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void _add_server_default(ketama_t *kt, size_t hashstring_size, const
      char **parts,\n        lua_Integer bucket_size, lua_Integer id, unsigned int
      *cont)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/proxy_ring_hash.c:145,1
    - Dst: snprintf
      Src: /src/memcached/proxy_ring_hash.c:151,1
    - Dst: ketama_md5_digest
      Src: /src/memcached/proxy_ring_hash.c:155,1
    - Dst: free
      Src: /src/memcached/proxy_ring_hash.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - kt
    - hashstring_size
    - parts
    - bucket_size
    - id
    - cont
    argTypes:
    - ketama_t*
    - size_t
    - char**
    - lua_Integer
    - lua_Integer
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: _add_server_ketama
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - malloc
    - ketama_md5_digest
    - free
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void _add_server_ketama(ketama_t *kt, size_t hashstring_size, const
      char **parts,\n        lua_Integer bucket_size, lua_Integer id, unsigned int
      *cont)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/proxy_ring_hash.c:176,1
    - Dst: strcmp
      Src: /src/memcached/proxy_ring_hash.c:182,1
    - Dst: snprintf
      Src: /src/memcached/proxy_ring_hash.c:185,1
    - Dst: snprintf
      Src: /src/memcached/proxy_ring_hash.c:187,1
    - Dst: ketama_md5_digest
      Src: /src/memcached/proxy_ring_hash.c:192,1
    - Dst: free
      Src: /src/memcached/proxy_ring_hash.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - kt
    - hashstring_size
    - parts
    - bucket_size
    - id
    - cont
    argTypes:
    - ketama_t*
    - size_t
    - char**
    - lua_Integer
    - lua_Integer
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 209
    functionName: _add_server_twemproxy
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - ketama_md5_digest
    - snprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void _add_server_twemproxy(ketama_t *kt, size_t hashstring_size, const
      char **parts,\n        lua_Integer bucket_size, lua_Integer id, unsigned int
      *cont)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/proxy_ring_hash.c:213,1
    - Dst: snprintf
      Src: /src/memcached/proxy_ring_hash.c:219,1
    - Dst: ketama_md5_digest
      Src: /src/memcached/proxy_ring_hash.c:222,1
    - Dst: free
      Src: /src/memcached/proxy_ring_hash.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - kt
    - hashstring_size
    - parts
    - bucket_size
    - id
    - cont
    argTypes:
    - ketama_t*
    - size_t
    - char**
    - lua_Integer
    - lua_Integer
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 239
    functionName: _add_server_evcache
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - malloc
    - ketama_md5_digest
    - free
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void _add_server_evcache(ketama_t *kt, size_t hashstring_size, const
      char **parts,\n        lua_Integer bucket_size, lua_Integer id, unsigned int
      *cont)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_ring_hash.c:250,1
    - Dst: lua_rawlen
      Src: /src/memcached/proxy_ring_hash.c:253,1
    - Dst: lua_gettop
      Src: /src/memcached/proxy_ring_hash.c:256,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_ring_hash.c:258,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_ring_hash.c:259,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_ring_hash.c:260,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_ring_hash.c:261,1
    - Dst: strcmp
      Src: /src/memcached/proxy_ring_hash.c:262,1
    - Dst: strcmp
      Src: /src/memcached/proxy_ring_hash.c:264,1
    - Dst: strcmp
      Src: /src/memcached/proxy_ring_hash.c:266,1
    - Dst: strcmp
      Src: /src/memcached/proxy_ring_hash.c:268,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_ring_hash.c:271,1
    - Dst: lua_error
      Src: /src/memcached/proxy_ring_hash.c:272,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_ring_hash.c:275,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_ring_hash.c:277,1
    - Dst: lua_tointegerx
      Src: /src/memcached/proxy_ring_hash.c:279,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_ring_hash.c:281,1
    - Dst: lua_error
      Src: /src/memcached/proxy_ring_hash.c:282,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_ring_hash.c:285,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_ring_hash.c:290,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_ring_hash.c:296,1
    - Dst: lua_next
      Src: /src/memcached/proxy_ring_hash.c:297,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_ring_hash.c:303,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_ring_hash.c:304,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_ring_hash.c:305,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_ring_hash.c:308,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_ring_hash.c:309,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_ring_hash.c:310,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_ring_hash.c:311,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_ring_hash.c:312,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_ring_hash.c:313,1
    - Dst: _add_server_default
      Src: /src/memcached/proxy_ring_hash.c:326,1
    - Dst: _add_server_ketama
      Src: /src/memcached/proxy_ring_hash.c:329,1
    - Dst: _add_server_twemproxy
      Src: /src/memcached/proxy_ring_hash.c:332,1
    - Dst: _add_server_evcache
      Src: /src/memcached/proxy_ring_hash.c:338,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_ring_hash.c:342,1
    - Dst: qsort
      Src: /src/memcached/proxy_ring_hash.c:346,1
    - Dst: lua_pushlightuserdata
      Src: /src/memcached/proxy_ring_hash.c:353,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 356
    functionName: ketama_new
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - lua_tointegerx
    - lua_pushstring
    - lua_tostring
    - lua_next
    - lua_pop
    - lua_newuserdatauv
    - lua_getfield
    - qsort
    - lua_tolstring
    - lua_error
    - _add_server_ketama
    - lua_pushnil
    - _add_server_evcache
    - _add_server_default
    - lua_rawlen
    - luaL_checktype
    - _add_server_twemproxy
    - lua_gettop
    - lua_pushlightuserdata
    - lua_tointeger
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ketama_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_newlib
      Src: /src/memcached/proxy_ring_hash.c:364,1
    - Dst: lua_pushlightuserdata
      Src: /src/memcached/proxy_ring_hash.c:365,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_ring_hash.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: mcplib_open_dist_ring_hash
    functionSourceFile: /src/memcached/proxy_ring_hash.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - luaL_newlib
    - lua_setfield
    linkageType: ''
    returnType: int
    signature: int mcplib_open_dist_ring_hash(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: init_sasl
    functionSourceFile: /src/memcached/sasl_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_sasl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: sasl_dispose
    functionSourceFile: /src/memcached/sasl_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sasl_dispose(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: sasl_server_new
    functionSourceFile: /src/memcached/sasl_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sasl_server_new(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: sasl_listmech
    functionSourceFile: /src/memcached/sasl_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sasl_listmech(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: sasl_server_start
    functionSourceFile: /src/memcached/sasl_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sasl_server_start(a, b, c, d, e, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: sasl_server_step
    functionSourceFile: /src/memcached/sasl_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sasl_server_step(a, b, c, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: sasl_getprop
    functionSourceFile: /src/memcached/sasl_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sasl_getprop(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: dd
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dd(u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/itoa_ljust.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - p
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: out2
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char * out2(const int d, char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/itoa_ljust.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - in
    - p
    argTypes:
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: out1
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char * out1(const char in, char* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: out1
      Src: /src/memcached/itoa_ljust.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - u
    - k
    - d
    - p
    - n
    argTypes:
    - uint32_t
    - unsigned
    - int*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: digits
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 0
    functionsReached:
    - out1
    linkageType: ''
    returnType: int
    signature: int digits( uint32_t u, unsigned k, int* d, char** p, int n )
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: out2
      Src: /src/memcached/itoa_ljust.c:94,1
    - Dst: out2
      Src: /src/memcached/itoa_ljust.c:96,1
    - Dst: out2
      Src: /src/memcached/itoa_ljust.c:98,1
    - Dst: out2
      Src: /src/memcached/itoa_ljust.c:100,1
    - Dst: out2
      Src: /src/memcached/itoa_ljust.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 4
    argNames:
    - u
    - p
    - d
    - n
    argTypes:
    - uint32_t
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: itoa
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 0
    functionsReached:
    - out2
    linkageType: ''
    returnType: char
    signature: char * itoa(uint32_t u, char* p, int d, int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: digits
      Src: /src/memcached/itoa_ljust.c:111,1
    - Dst: digits
      Src: /src/memcached/itoa_ljust.c:112,1
    - Dst: digits
      Src: /src/memcached/itoa_ljust.c:113,1
    - Dst: digits
      Src: /src/memcached/itoa_ljust.c:114,1
    - Dst: digits
      Src: /src/memcached/itoa_ljust.c:115,1
    - Dst: itoa
      Src: /src/memcached/itoa_ljust.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - u
    - p
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: itoa_u32
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 5
    functionsReached:
    - itoa
    - digits
    linkageType: ''
    returnType: char
    signature: char * itoa_u32(uint32_t u, char* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: itoa_u32
      Src: /src/memcached/itoa_ljust.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - int32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: itoa_32
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 0
    functionsReached:
    - itoa_u32
    linkageType: ''
    returnType: char
    signature: char * itoa_32(int32_t i, char* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: itoa_u32
      Src: /src/memcached/itoa_ljust.c:132,1
    - Dst: itoa_u64
      Src: /src/memcached/itoa_ljust.c:135,1
    - Dst: out1
      Src: /src/memcached/itoa_ljust.c:138,1
    - Dst: itoa
      Src: /src/memcached/itoa_ljust.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - u
    - p
    argTypes:
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: itoa_u64
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 6
    functionsReached:
    - itoa_u64
    - itoa_u32
    - itoa
    - out1
    linkageType: ''
    returnType: char
    signature: char * itoa_u64(uint64_t u, char* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: itoa_u64
      Src: /src/memcached/itoa_ljust.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - i
    - p
    argTypes:
    - int64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: itoa_64
    functionSourceFile: /src/memcached/itoa_ljust.c
    functionUses: 0
    functionsReached:
    - itoa_u64
    linkageType: ''
    returnType: char
    signature: char * itoa_64(int64_t i, char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: GET_LOGGER
    functionSourceFile: /src/memcached/logger.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOGGER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - flag
    - ','
    - type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: LOGGER_LOG
    functionSourceFile: /src/memcached/logger.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGGER_LOG(l, flag, type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:131,1
    - Dst: read
      Src: /src/memcached/memcached.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: tcp_read
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - assert
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tcp_read(conn *c, void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:136,1
    - Dst: sendmsg
      Src: /src/memcached/memcached.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - msg
    - flags
    argTypes:
    - conn*
    - struct msghdr*
    - int
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: tcp_sendmsg
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - sendmsg
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tcp_sendmsg(conn *c, struct msghdr *msg, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:141,1
    - Dst: write
      Src: /src/memcached/memcached.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: tcp_write
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - write
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tcp_write(conn *c, void *buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_set
      Src: /src/memcached/memcached.c:160,1
    - Dst: event_base_set
      Src: /src/memcached/memcached.c:161,1
    - Dst: evtimer_add
      Src: /src/memcached/memcached.c:162,1
    - Dst: evtimer_del
      Src: /src/memcached/memcached.c:164,1
    - Dst: accept_new_conns
      Src: /src/memcached/memcached.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: maxconns_handler
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - event_base_set
    - evtimer_set
    - accept_new_conns
    - evtimer_del
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void maxconns_handler(const evutil_socket_t fd, const short which,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - exptime
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: realtime
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: rel_time_t
    signature: rel_time_t realtime(const time_t exptime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/memcached.c:195,1
    - Dst: memset
      Src: /src/memcached/memcached.c:196,1
    - Dst: time
      Src: /src/memcached/memcached.c:203,1
    - Dst: stats_prefix_init
      Src: /src/memcached/memcached.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 205
    functionName: stats_init
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - stats_prefix_init
    - time
    - memset
    linkageType: ''
    returnType: void
    signature: void stats_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:208,1
    - Dst: memset
      Src: /src/memcached/memcached.c:209,1
    - Dst: stats_prefix_clear
      Src: /src/memcached/memcached.c:210,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:211,1
    - Dst: threadlocal_stats_reset
      Src: /src/memcached/memcached.c:212,1
    - Dst: item_stats_reset
      Src: /src/memcached/memcached.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: stats_reset
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 2
    functionsReached:
    - threadlocal_stats_reset
    - item_stats_reset
    - stats_prefix_clear
    - STATS_LOCK
    - memset
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void stats_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_init_settings
      Src: /src/memcached/memcached.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 281
    functionName: settings_init
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - ssl_init_settings
    linkageType: ''
    returnType: void
    signature: void settings_init(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/memcached/memcached.c:303,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:306,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:313,1
    - Dst: usleep
      Src: /src/memcached/memcached.c:315,1
    - Dst: IS_TCP
      Src: /src/memcached/memcached.c:323,1
    - Dst: timeout_conn
      Src: /src/memcached/memcached.c:330,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:343,1
    - Dst: gettimeofday
      Src: /src/memcached/memcached.c:349,1
    - Dst: pthread_cond_timedwait
      Src: /src/memcached/memcached.c:353,1
    - Dst: mutex_unlock
      Src: /src/memcached/memcached.c:356,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 358
    functionName: conn_timeout_thread
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - IS_TCP
    - fprintf
    - gettimeofday
    - pthread_cond_timedwait
    - usleep
    - mutex_lock
    - mutex_unlock
    - timeout_conn
    linkageType: ''
    returnType: void
    signature: void *conn_timeout_thread(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/memcached/memcached.c:367,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:369,1
    - Dst: strerror
      Src: /src/memcached/memcached.c:370,1
    - Dst: thread_setname
      Src: /src/memcached/memcached.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 376
    functionName: start_conn_timeout_thread
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - pthread_create
    - thread_setname
    linkageType: ''
    returnType: int
    signature: int start_conn_timeout_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/memcached/memcached.c:381,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/memcached.c:383,1
    - Dst: mutex_unlock
      Src: /src/memcached/memcached.c:384,1
    - Dst: pthread_join
      Src: /src/memcached/memcached.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 387
    functionName: stop_conn_timeout_thread
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - mutex_lock
    - pthread_cond_signal
    - mutex_unlock
    linkageType: ''
    returnType: int
    signature: int stop_conn_timeout_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:393,1
    - Dst: free
      Src: /src/memcached/memcached.c:395,1
    - Dst: do_cache_free
      Src: /src/memcached/memcached.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: rbuf_release
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - free
    - IS_UDP
    - do_cache_free
    linkageType: ''
    returnType: void
    signature: void rbuf_release(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_cache_alloc
      Src: /src/memcached/memcached.c:408,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:410,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 419
    functionName: rbuf_alloc
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - THR_STATS_LOCK
    - do_cache_alloc
    - THR_STATS_UNLOCK
    linkageType: ''
    returnType: bool
    signature: bool rbuf_alloc(conn *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/memcached.c:427,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:431,1
    - Dst: do_cache_free
      Src: /src/memcached/memcached.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: rbuf_switch_to_malloc
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - malloc
    - do_cache_free
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool rbuf_switch_to_malloc(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/memcached/memcached.c:452,1
    - Dst: perror
      Src: /src/memcached/memcached.c:454,1
    - Dst: exit
      Src: /src/memcached/memcached.c:455,1
    - Dst: getrlimit
      Src: /src/memcached/memcached.c:463,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:466,1
    - Dst: close
      Src: /src/memcached/memcached.c:470,1
    - Dst: calloc
      Src: /src/memcached/memcached.c:472,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:473,1
    - Dst: exit
      Src: /src/memcached/memcached.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 477
    functionName: conn_init
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fprintf
    - dup
    - exit
    - close
    - perror
    - getrlimit
    - calloc
    linkageType: ''
    returnType: void
    signature: void conn_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - prot
    argTypes:
    - enum protocol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 498
    functionName: prot_text
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *prot_text(enum protocol prot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/memcached/memcached.c:505,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:511,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:513,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:515,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:519,1
    - Dst: drive_machine
      Src: /src/memcached/memcached.c:520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 522
    functionName: conn_close_idle
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - conn_set_state
    - drive_machine
    linkageType: ''
    returnType: void
    signature: void conn_close_idle(conn *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_set
      Src: /src/memcached/memcached.c:526,1
    - Dst: event_base_set
      Src: /src/memcached/memcached.c:527,1
    - Dst: event_add
      Src: /src/memcached/memcached.c:530,1
    - Dst: perror
      Src: /src/memcached/memcached.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 533
    functionName: _conn_event_readd
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - event_base_set
    - event_set
    - event_add
    - perror
    linkageType: ''
    returnType: void
    signature: void _conn_event_readd(conn *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:537,1
    - Dst: drive_machine
      Src: /src/memcached/memcached.c:541,1
    - Dst: _conn_event_readd
      Src: /src/memcached/memcached.c:546,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:549,1
    - Dst: event_active
      Src: /src/memcached/memcached.c:552,1
    - Dst: event_del
      Src: /src/memcached/memcached.c:564,1
    - Dst: _conn_event_readd
      Src: /src/memcached/memcached.c:565,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c->resps_suspended == 0)
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 569
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 569
    functionName: conn_worker_readd
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - event_active
    - _conn_event_readd
    - assert
    - conn_set_state
    - event_del
    - drive_machine
    linkageType: ''
    returnType: void
    signature: void conn_worker_readd(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_INIT
      Src: /src/memcached/memcached.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - t
    - type
    - ctx
    - cb
    argTypes:
    - LIBEVENT_THREAD*
    - int
    - void*
    - io_queue_stack_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 581
    functionName: thread_io_queue_add
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void thread_io_queue_add(LIBEVENT_THREAD *t, int type, void *ctx, io_queue_stack_cb
      cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - t
    - type
    argTypes:
    - LIBEVENT_THREAD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: thread_io_queue_get
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: io_queue_t
    signature: io_queue_t *thread_io_queue_get(LIBEVENT_THREAD *t, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/memcached.c:598,1
    - Dst: io_queue_t*::submit_cb
      Src: /src/memcached/memcached.c:599,1
    - Dst: assert
      Src: /src/memcached/memcached.c:600,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/memcached.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - LIBEVENT_THREAD*
    assertStmts:
    - condition: (STAILQ_EMPTY(&q->stack))
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 603
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: thread_io_queue_submit
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - io_queue_t*::submit_cb
    - STAILQ_EMPTY
    - assert
    linkageType: ''
    returnType: void
    signature: void thread_io_queue_submit(LIBEVENT_THREAD *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_pending_t*::return_cb
      Src: /src/memcached/memcached.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - io
    argTypes:
    - io_pending_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: conn_io_queue_return
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - io_pending_t*::return_cb
    linkageType: ''
    returnType: void
    signature: void conn_io_queue_return(io_pending_t *io)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:617,1
    - Dst: calloc
      Src: /src/memcached/memcached.c:621,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:622,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:624,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:625,1
    - Dst: MEMCACHED_CONN_CREATE
      Src: /src/memcached/memcached.c:628,1
    - Dst: malloc
      Src: /src/memcached/memcached.c:638,1
    - Dst: conn_free
      Src: /src/memcached/memcached.c:642,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:643,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:645,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:646,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:651,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:653,1
    - Dst: getpeername
      Src: /src/memcached/memcached.c:673,1
    - Dst: perror
      Src: /src/memcached/memcached.c:675,1
    - Dst: memset
      Src: /src/memcached/memcached.c:676,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/memcached.c:681,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:687,1
    - Dst: prot_text
      Src: /src/memcached/memcached.c:688,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:689,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:690,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:692,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:695,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:697,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:700,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:703,1
    - Dst: assert
      Src: /src/memcached/memcached.c:705,1
    - Dst: assert
      Src: /src/memcached/memcached.c:720,1
    - Dst: assert
      Src: /src/memcached/memcached.c:730,1
    - Dst: ssl_init_conn
      Src: /src/memcached/memcached.c:731,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:740,1
    - Dst: event_set
      Src: /src/memcached/memcached.c:769,1
    - Dst: event_base_set
      Src: /src/memcached/memcached.c:770,1
    - Dst: event_add
      Src: /src/memcached/memcached.c:773,1
    - Dst: perror
      Src: /src/memcached/memcached.c:774,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:778,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:781,1
    - Dst: MEMCACHED_CONN_ALLOCATE
      Src: /src/memcached/memcached.c:783,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 137
    argCount: 9
    argNames:
    - sfd
    - init_state
    - event_flags
    - read_buffer_size
    - transport
    - base
    - ssl
    - conntag
    - bproto
    argTypes:
    - int
    - enum conn_states
    - int
    - int
    - enum network_transport
    - struct event_base*
    - void*
    - uint64_t
    - enum protocol
    assertStmts:
    - condition: (sfd >= 0 && sfd < max_fds)
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/memcached/memcached.c
    - condition: (false)
      pos:
        line_end: 704
        line_start: 704
        source_file: /src/memcached/memcached.c
    - condition: (settings.ssl_enabled)
      pos:
        line_end: 729
        line_start: 729
        source_file: /src/memcached/memcached.c
    - condition: (c->resps_suspended == 0)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 786
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 786
    functionName: conn_new
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - event_set
    - ssl_init_conn
    - STATS_LOCK
    - MEMCACHED_CONN_ALLOCATE
    - LOGGER_LOG
    - assert
    - event_add
    - STATS_UNLOCK
    - malloc
    - event_base_set
    - prot_text
    - MEMCACHED_CONN_CREATE
    - perror
    - memset
    - calloc
    - fprintf
    - IS_UDP
    - conn_free
    - getpeername
    linkageType: ''
    returnType: conn
    signature: "conn *conn_new(const int sfd, enum conn_states init_state,\n                const
      int event_flags,\n                const int read_buffer_size, enum network_transport
      transport,\n                struct event_base *base, void *ssl, uint64_t conntag,\n
      \               enum protocol bproto)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:789,1
    - Dst: free
      Src: /src/memcached/memcached.c:793,1
    - Dst: item_remove
      Src: /src/memcached/memcached.c:796,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:810,1
    - Dst: resp_finish
      Src: /src/memcached/memcached.c:818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 821
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 821
    functionName: conn_release_items
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - resp_finish
    - free
    - item_remove
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: void conn_release_items(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:824,1
    - Dst: conn_release_items
      Src: /src/memcached/memcached.c:826,1
    - Dst: proxy_cleanup_conn
      Src: /src/memcached/memcached.c:829,1
    - Dst: assert
      Src: /src/memcached/memcached.c:833,1
    - Dst: sasl_dispose
      Src: /src/memcached/memcached.c:834,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:838,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/memcached/memcached.c
    - condition: (settings.sasl)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 841
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 841
    functionName: conn_cleanup
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - sasl_dispose
    - proxy_cleanup_conn
    - assert
    - IS_UDP
    - conn_set_state
    - conn_release_items
    linkageType: ''
    returnType: void
    signature: void conn_cleanup(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:848,1
    - Dst: assert
      Src: /src/memcached/memcached.c:849,1
    - Dst: MEMCACHED_CONN_DESTROY
      Src: /src/memcached/memcached.c:851,1
    - Dst: free
      Src: /src/memcached/memcached.c:854,1
    - Dst: free
      Src: /src/memcached/memcached.c:860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/memcached/memcached.c
    - condition: (c->sfd >= 0 && c->sfd < max_fds)
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 862
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 862
    functionName: conn_free
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - free
    - assert
    - MEMCACHED_CONN_DESTROY
    linkageType: ''
    returnType: void
    signature: void conn_free(conn *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:865,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/memcached.c:868,1
    - Dst: event_del
      Src: /src/memcached/memcached.c:874,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:877,1
    - Dst: conn_cleanup
      Src: /src/memcached/memcached.c:879,1
    - Dst: rbuf_release
      Src: /src/memcached/memcached.c:884,1
    - Dst: MEMCACHED_CONN_RELEASE
      Src: /src/memcached/memcached.c:887,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:888,1
    - Dst: ssl_conn_close
      Src: /src/memcached/memcached.c:890,1
    - Dst: close
      Src: /src/memcached/memcached.c:892,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:894,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:896,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:898,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 903
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 903
    functionName: conn_close
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - fprintf
    - ssl_conn_close
    - pthread_mutex_unlock
    - rbuf_release
    - LOGGER_LOG
    - pthread_mutex_lock
    - event_del
    - assert
    - MEMCACHED_CONN_RELEASE
    - conn_set_state
    - close
    - conn_cleanup
    - STATS_LOCK
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void conn_close(conn *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_close
      Src: /src/memcached/memcached.c:912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 915
    functionName: conn_close_all
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - conn_close
    linkageType: ''
    returnType: void
    signature: void conn_close_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum conn_states
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 937
    functionName: state_text
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *state_text(enum conn_states state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:945,1
    - Dst: assert
      Src: /src/memcached/memcached.c:946,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:950,1
    - Dst: state_text
      Src: /src/memcached/memcached.c:951,1
    - Dst: state_text
      Src: /src/memcached/memcached.c:952,1
    - Dst: MEMCACHED_PROCESS_COMMAND_END
      Src: /src/memcached/memcached.c:956,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - c
    - state
    argTypes:
    - conn*
    - enum conn_states
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/memcached/memcached.c
    - condition: (state >= conn_listening && state < conn_max_state)
      pos:
        line_end: 945
        line_start: 945
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 960
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 960
    functionName: conn_set_state
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 17
    functionsReached:
    - fprintf
    - assert
    - state_text
    - MEMCACHED_PROCESS_COMMAND_END
    linkageType: ''
    returnType: void
    signature: void conn_set_state(conn *c, enum conn_states state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: item_remove
      Src: /src/memcached/memcached.c:967,1
    - Dst: free
      Src: /src/memcached/memcached.c:977,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - resp
    argTypes:
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 986
    functionName: resp_reset
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - free
    - item_remove
    linkageType: ''
    returnType: void
    signature: void resp_reset(mc_resp *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - resp
    - buf
    - len
    argTypes:
    - mc_resp*
    - void*
    - int
    assertStmts:
    - condition: (resp->iovcnt < MC_RESP_IOVCOUNT)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 995
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 995
    functionName: resp_add_iov
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 9
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void resp_add_iov(mc_resp *resp, const void *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resp_add_iov
      Src: /src/memcached/memcached.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - resp
    - buf
    - len
    argTypes:
    - mc_resp*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: resp_add_chunked_iov
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 2
    functionsReached:
    - resp_add_iov
    linkageType: ''
    returnType: void
    signature: void resp_add_chunked_iov(mc_resp *resp, const void *buf, int len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/memcached.c:1029,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1033,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1046,1
    - Dst: do_cache_alloc
      Src: /src/memcached/memcached.c:1047,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:1049,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:1051,1
    - Dst: memset
      Src: /src/memcached/memcached.c:1062,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (b->prev == NULL)
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/memcached/memcached.c
    - condition: (th->open_bundle == NULL)
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1071
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1071
    functionName: resp_allocate
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - THR_STATS_LOCK
    - assert
    - do_cache_alloc
    - THR_STATS_UNLOCK
    - memset
    linkageType: ''
    returnType: mc_resp
    signature: mc_resp * resp_allocate(conn *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:1081,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1085,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1091,1
    - Dst: do_cache_free
      Src: /src/memcached/memcached.c:1097,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:1098,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:1100,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:1116,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:1118,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - th
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - mc_resp*
    assertStmts:
    - condition: (b->prev == 0)
      pos:
        line_end: 1080
        line_start: 1080
        source_file: /src/memcached/memcached.c
    - condition: (b->next != b && b->prev != b)
      pos:
        line_end: 1090
        line_start: 1090
        source_file: /src/memcached/memcached.c
    - condition: ((b->next || b->prev) || b == th->open_bundle)
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1119
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1119
    functionName: resp_free
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - THR_STATS_LOCK
    - THR_STATS_UNLOCK
    - assert
    - do_cache_free
    linkageType: ''
    returnType: void
    signature: void resp_free(LIBEVENT_THREAD *th, mc_resp *resp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resp_allocate
      Src: /src/memcached/memcached.c:1122,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:1124,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:1126,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:1131,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:1133,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:1144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1121
    functionDepth: 2
    functionLinenumber: 1121
    functionLinenumberEnd: 1151
    functionName: resp_start
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 4
    functionsReached:
    - THR_STATS_LOCK
    - resp_allocate
    - THR_STATS_UNLOCK
    - IS_UDP
    linkageType: ''
    returnType: bool
    signature: bool resp_start(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resp_allocate
      Src: /src/memcached/memcached.c:1154,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:1156,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:1158,1
    - Dst: THR_STATS_LOCK
      Src: /src/memcached/memcached.c:1163,1
    - Dst: THR_STATS_UNLOCK
      Src: /src/memcached/memcached.c:1165,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1175
    functionName: resp_start_unlinked
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - THR_STATS_LOCK
    - resp_allocate
    - THR_STATS_UNLOCK
    - IS_UDP
    linkageType: ''
    returnType: mc_resp
    signature: mc_resp *resp_start_unlinked(conn *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: item_remove
      Src: /src/memcached/memcached.c:1182,1
    - Dst: free
      Src: /src/memcached/memcached.c:1192,1
    - Dst: io_pending_t*::finalize_cb
      Src: /src/memcached/memcached.c:1198,1
    - Dst: do_cache_free
      Src: /src/memcached/memcached.c:1199,1
    - Dst: resp_free
      Src: /src/memcached/memcached.c:1208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - c
    - resp
    argTypes:
    - conn*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1178
    functionDepth: 2
    functionLinenumber: 1178
    functionLinenumberEnd: 1210
    functionName: resp_finish
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - free
    - item_remove
    - resp_free
    - do_cache_free
    - io_pending_t*::finalize_cb
    linkageType: ''
    returnType: mc_resp
    signature: mc_resp * resp_finish(conn *c, mc_resp *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1215
    functionName: resp_has_stack
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool resp_has_stack(conn *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:1219,1
    - Dst: resp_reset
      Src: /src/memcached/memcached.c:1227,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:1234,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:1235,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:1240,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:1244,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:1248,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1251,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1252,1
    - Dst: resp_add_iov
      Src: /src/memcached/memcached.c:1253,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:1255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - c
    - str
    argTypes:
    - conn*
    - char*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 1218
        line_start: 1218
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1257
      start: 1217
    functionDepth: 2
    functionLinenumber: 1217
    functionLinenumberEnd: 1257
    functionName: out_string
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 33
    functionsReached:
    - fprintf
    - resp_reset
    - strlen
    - assert
    - conn_set_state
    - resp_add_iov
    - memcpy
    linkageType: ''
    returnType: void
    signature: void out_string(conn *c, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: out_string
      Src: /src/memcached/memcached.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - str
    argTypes:
    - conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1261
    functionDepth: 3
    functionLinenumber: 1261
    functionLinenumberEnd: 1264
    functionName: out_errstring
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 8
    functionsReached:
    - out_string
    linkageType: ''
    returnType: void
    signature: void out_errstring(conn *c, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/memcached/memcached.c:1276,1
    - Dst: write_bin_error
      Src: /src/memcached/memcached.c:1279,1
    - Dst: out_string
      Src: /src/memcached/memcached.c:1281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - ascii_error
    argTypes:
    - conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1270
    functionDepth: 3
    functionLinenumber: 1270
    functionLinenumberEnd: 1283
    functionName: out_of_memory
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - strncmp
    - write_bin_error
    - out_string
    linkageType: ''
    returnType: void
    signature: void out_of_memory(conn *c, char *ascii_error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/memcached/memcached.c:1293,1
    - Dst: htonl
      Src: /src/memcached/memcached.c:1295,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1299,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1303,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - key
    - klen
    - val
    - vlen
    - c
    argTypes:
    - char*
    - uint16_t
    - char*
    - uint32_t
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1312
    functionName: append_bin_stats
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - htonl
    - htons
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void append_bin_stats(const char *key, const uint16_t klen,\n                             const
      char *val, const uint32_t vlen,\n                             conn *c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/memcached/memcached.c:1323,1
    - Dst: snprintf
      Src: /src/memcached/memcached.c:1325,1
    - Dst: snprintf
      Src: /src/memcached/memcached.c:1327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - key
    - klen
    - val
    - vlen
    - c
    argTypes:
    - char*
    - uint16_t
    - char*
    - uint32_t
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1331
    functionName: append_ascii_stats
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void append_ascii_stats(const char *key, const uint16_t klen,\n                               const
      char *val, const uint32_t vlen,\n                               conn *c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:1345,1
    - Dst: realloc
      Src: /src/memcached/memcached.c:1351,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:1356,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:1358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - c
    - needed
    argTypes:
    - conn*
    - size_t
    assertStmts:
    - condition: (nsize > 0)
      pos:
        line_end: 1344
        line_start: 1344
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1364
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1364
    functionName: grow_stats_buf
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - realloc
    - assert
    - STATS_UNLOCK
    - STATS_LOCK
    linkageType: ''
    returnType: bool
    signature: bool grow_stats_buf(conn *c, size_t needed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grow_stats_buf
      Src: /src/memcached/memcached.c:1379,1
    - Dst: append_bin_stats
      Src: /src/memcached/memcached.c:1382,1
    - Dst: grow_stats_buf
      Src: /src/memcached/memcached.c:1385,1
    - Dst: append_ascii_stats
      Src: /src/memcached/memcached.c:1388,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - key
    - klen
    - val
    - vlen
    - cookie
    argTypes:
    - char*
    - uint16_t
    - char*
    - uint32_t
    - void*
    assertStmts:
    - condition: (c->stats.offset <= c->stats.size)
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1392
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1392
    functionName: append_stats
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - assert
    - append_ascii_stats
    - grow_stats_buf
    - append_bin_stats
    linkageType: ''
    returnType: void
    signature: "void append_stats(const char *key, const uint16_t klen,\n                  const
      char *val, const uint32_t vlen,\n                  const void *cookie)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/memcached.c:1401,1
    - Dst: item_remove
      Src: /src/memcached/memcached.c:1404,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:1409,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:1411,1
    - Dst: ssl_pending
      Src: /src/memcached/memcached.c:1412,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:1416,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:1418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1394
    functionDepth: 2
    functionLinenumber: 1394
    functionLinenumberEnd: 1420
    functionName: reset_cmd_handler
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - ssl_pending
    - free
    - item_remove
    - conn_set_state
    linkageType: ''
    returnType: void
    signature: void reset_cmd_handler(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:1423,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1425,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1429,1
    - Dst: complete_nread_ascii
      Src: /src/memcached/memcached.c:1433,1
    - Dst: complete_nread_binary
      Src: /src/memcached/memcached.c:1435,1
    - Dst: complete_nread_proxy
      Src: /src/memcached/memcached.c:1438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 1422
        line_start: 1422
        source_file: /src/memcached/memcached.c
    - condition: "(c->protocol == ascii_prot\n           || c->protocol == binary_prot)"
      pos:
        line_end: 1429
        line_start: 1428
        source_file: /src/memcached/memcached.c
    - condition: "(c->protocol == ascii_prot\n           || c->protocol == binary_prot\n
        \          || c->protocol == proxy_prot)"
      pos:
        line_end: 1426
        line_start: 1424
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1441
      start: 1422
    functionDepth: 3
    functionLinenumber: 1422
    functionLinenumberEnd: 1441
    functionName: complete_nread
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - complete_nread_ascii
    - complete_nread_binary
    - assert
    - complete_nread_proxy
    linkageType: ''
    returnType: void
    signature: void complete_nread(conn *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_schunk
      Src: /src/memcached/memcached.c:1446,1
    - Dst: ITEM_schunk
      Src: /src/memcached/memcached.c:1458,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1464,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1469,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1473,1
    - Dst: do_item_alloc_chunk
      Src: /src/memcached/memcached.c:1475,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1482,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1489,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1497,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1497,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1500,1
    - Dst: do_item_alloc_chunk
      Src: /src/memcached/memcached.c:1502,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1510,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 3
    argNames:
    - d_it
    - s_it
    - len
    argTypes:
    - item*
    - item*
    - int
    assertStmts:
    - condition: (dch->used <= dch->size)
      pos:
        line_end: 1472
        line_start: 1472
        source_file: /src/memcached/memcached.c
    - condition: (dch->used <= dch->size)
      pos:
        line_end: 1463
        line_start: 1463
        source_file: /src/memcached/memcached.c
    - condition: (copied <= sch->used)
      pos:
        line_end: 1481
        line_start: 1481
        source_file: /src/memcached/memcached.c
    - condition: (remain == 0)
      pos:
        line_end: 1488
        line_start: 1488
        source_file: /src/memcached/memcached.c
    - condition: (len == done)
      pos:
        line_end: 1509
        line_start: 1509
        source_file: /src/memcached/memcached.c
    - condition: (dch->used <= dch->size)
      pos:
        line_end: 1499
        line_start: 1499
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1513
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1513
    functionName: _store_item_copy_chunks
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - do_item_alloc_chunk
    - ITEM_data
    - assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _store_item_copy_chunks(item *d_it, item *s_it, const int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _store_item_copy_chunks
      Src: /src/memcached/memcached.c:1518,1
    - Dst: _store_item_copy_chunks
      Src: /src/memcached/memcached.c:1519,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1523,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1523,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1523,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1524,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1524,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1524,1
    - Dst: _store_item_copy_chunks
      Src: /src/memcached/memcached.c:1529,1
    - Dst: _store_item_copy_chunks
      Src: /src/memcached/memcached.c:1530,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1534,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1534,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1534,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:1535,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1535,1
    - Dst: ITEM_data
      Src: /src/memcached/memcached.c:1535,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - comm
    - old_it
    - new_it
    - add_it
    argTypes:
    - int
    - item*
    - item*
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1515
    functionDepth: 2
    functionLinenumber: 1515
    functionLinenumberEnd: 1539
    functionName: _store_item_copy_data
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - ITEM_data
    - _store_item_copy_chunks
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _store_item_copy_data(int comm, item *old_it, item *new_it, item
      *add_it)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_key
      Src: /src/memcached/memcached.c:1548,1
    - Dst: do_item_get
      Src: /src/memcached/memcached.c:1549,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/memcached.c:1563,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/memcached.c:1564,1
    - Dst: do_item_update
      Src: /src/memcached/memcached.c:1578,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:1585,1
    - Dst: ITEM_clsid
      Src: /src/memcached/memcached.c:1586,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:1587,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:1600,1
    - Dst: ITEM_clsid
      Src: /src/memcached/memcached.c:1601,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:1602,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:1606,1
    - Dst: ITEM_clsid
      Src: /src/memcached/memcached.c:1607,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:1608,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:1611,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/memcached.c:1612,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/memcached.c:1613,1
    - Dst: FLAGS_CONV
      Src: /src/memcached/memcached.c:1634,1
    - Dst: do_item_alloc
      Src: /src/memcached/memcached.c:1635,1
    - Dst: _store_item_copy_data
      Src: /src/memcached/memcached.c:1641,1
    - Dst: STORAGE_delete
      Src: /src/memcached/memcached.c:1662,1
    - Dst: item_replace
      Src: /src/memcached/memcached.c:1663,1
    - Dst: do_item_remove
      Src: /src/memcached/memcached.c:1667,1
    - Dst: do_item_remove
      Src: /src/memcached/memcached.c:1670,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/memcached.c:1674,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:1689,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:1691,1
    - Dst: do_item_link
      Src: /src/memcached/memcached.c:1701,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/memcached.c:1707,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/memcached.c:1709,1
    - Dst: ITEM_key
      Src: /src/memcached/memcached.c:1710,1
    - Dst: ITEM_clsid
      Src: /src/memcached/memcached.c:1711,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 115
    argCount: 8
    argNames:
    - it
    - comm
    - t
    - hv
    - nbytes
    - cas
    - cas_in
    - cas_stale
    argTypes:
    - item*
    - int
    - LIBEVENT_THREAD*
    - uint32_t
    - int*
    - uint64_t*
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1547
    functionDepth: 3
    functionLinenumber: 1547
    functionLinenumberEnd: 1714
    functionName: do_store_item
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 2
    functionsReached:
    - do_item_link
    - fprintf
    - ITEM_clsid
    - _store_item_copy_data
    - STORAGE_delete
    - item_replace
    - pthread_mutex_unlock
    - do_item_alloc
    - pthread_mutex_lock
    - LOGGER_LOG
    - ITEM_get_cas
    - do_item_get
    - do_item_remove
    - FLAGS_CONV
    - ITEM_key
    - do_item_update
    linkageType: ''
    returnType: enum store_item_type
    signature: enum store_item_type do_store_item(item *it, int comm, LIBEVENT_THREAD
      *t, const uint32_t hv, int *nbytes, uint64_t *cas, uint64_t cas_in, bool cas_stale)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resp_add_iov
      Src: /src/memcached/memcached.c:1721,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:1722,1
    - Dst: out_of_memory
      Src: /src/memcached/memcached.c:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - c
    - buf
    - bytes
    argTypes:
    - conn*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1717
    functionDepth: 4
    functionLinenumber: 1717
    functionLinenumberEnd: 1726
    functionName: write_and_free
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 3
    functionsReached:
    - resp_add_iov
    - conn_set_state
    - out_of_memory
    linkageType: ''
    returnType: void
    signature: void write_and_free(conn *c, char *buf, int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:1734,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1735,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1736,1
    - Dst: assert
      Src: /src/memcached/memcached.c:1737,1
    - Dst: va_start
      Src: /src/memcached/memcached.c:1739,1
    - Dst: vsnprintf
      Src: /src/memcached/memcached.c:1740,1
    - Dst: va_end
      Src: /src/memcached/memcached.c:1741,1
    - Dst: add_stats
      Src: /src/memcached/memcached.c:1743,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - name
    - add_stats
    - c
    - fmt
    argTypes:
    - char*
    - ADD_STAT
    - conn*
    - char*
    assertStmts:
    - condition: (name)
      pos:
        line_end: 1733
        line_start: 1733
        source_file: /src/memcached/memcached.c
    - condition: (fmt)
      pos:
        line_end: 1736
        line_start: 1736
        source_file: /src/memcached/memcached.c
    - condition: (add_stats)
      pos:
        line_end: 1734
        line_start: 1734
        source_file: /src/memcached/memcached.c
    - condition: (c)
      pos:
        line_end: 1735
        line_start: 1735
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1744
      start: 1728
    functionDepth: 0
    functionLinenumber: 1728
    functionLinenumberEnd: 1744
    functionName: append_stat
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - add_stats
    - va_end
    - va_start
    - vsnprintf
    - strlen
    - assert
    linkageType: ''
    returnType: void
    signature: "void append_stat(const char *name, ADD_STAT add_stats, conn *c,\n
      \                const char *fmt, ...)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/memcached/memcached.c:1748,1
    - Dst: threadlocal_stats_aggregate
      Src: /src/memcached/memcached.c:1752,1
    - Dst: slab_stats_aggregate
      Src: /src/memcached/memcached.c:1754,1
    - Dst: getrusage
      Src: /src/memcached/memcached.c:1757,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:1760,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1762,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1763,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1764,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1765,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1766,1
    - Dst: event_get_version
      Src: /src/memcached/memcached.c:1766,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1767,1
    - Dst: append_stat
      Src: /src/memcached/memcached.c:1770,1
    - Dst: append_stat
      Src: /src/memcached/memcached.c:1773,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1778,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1779,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1780,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1782,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1784,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1785,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1786,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1787,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1788,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1789,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1790,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1791,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1792,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1795,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1796,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1797,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1798,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1801,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1802,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1803,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1804,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1805,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1806,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1807,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1808,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1809,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1812,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1813,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1814,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1815,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1816,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1817,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1820,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1821,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1822,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1823,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1824,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1825,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1826,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1827,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1828,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1829,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1830,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1831,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1832,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1833,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1834,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1836,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1838,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1839,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1840,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1841,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1842,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1843,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1844,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1845,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1846,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1847,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1848,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1850,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1851,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1852,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1853,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1854,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1855,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1856,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1857,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1858,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1861,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1862,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1865,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1867,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1869,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1870,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1871,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1872,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1873,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:1874,1
    - Dst: storage_stats
      Src: /src/memcached/memcached.c:1876,1
    - Dst: proxy_stats
      Src: /src/memcached/memcached.c:1879,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1884,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1886,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1887,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1888,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1891,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 117
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1893
    functionName: server_stats
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - storage_stats
    - threadlocal_stats_aggregate
    - getpid
    - getrusage
    - slab_stats_aggregate
    - proxy_stats
    - event_get_version
    - append_stat
    - APPEND_STAT
    - STATS_LOCK
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void server_stats(ADD_STAT add_stats, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:1896,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1897,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1898,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1899,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1900,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1901,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1902,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1903,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1904,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1905,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1907,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1908,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1910,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1911,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1912,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1913,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1914,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1915,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1917,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1918,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1919,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1920,1
    - Dst: prot_text
      Src: /src/memcached/memcached.c:1921,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1922,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1923,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1924,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1925,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1926,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1927,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1928,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1929,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1930,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1931,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1932,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1933,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1934,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1935,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1936,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1937,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1938,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1939,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1940,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1941,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1942,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1943,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1944,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1945,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1946,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1947,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1948,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1949,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1950,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1951,1
    - Dst: item_stats_sizes_status
      Src: /src/memcached/memcached.c:1951,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1952,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1954,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1957,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1958,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1959,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1960,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1961,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1962,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1963,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1964,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1965,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1966,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1967,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1970,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1971,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1972,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1973,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1974,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1975,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1976,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1977,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1978,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1979,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1980,1
    - Dst: ssl_proto_text
      Src: /src/memcached/memcached.c:1980,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1983,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1984,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1986,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1987,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 82
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts:
    - condition: (add_stats)
      pos:
        line_end: 1895
        line_start: 1895
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 1989
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1989
    functionName: process_stat_settings
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - prot_text
    - item_stats_sizes_status
    - APPEND_STAT
    - assert
    - ssl_proto_text
    linkageType: ''
    returnType: void
    signature: void process_stat_settings(ADD_STAT add_stats, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/memcached.c:1992,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:1993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - nzlength
    - nz
    - z
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1991
    functionDepth: 0
    functionLinenumber: 1991
    functionLinenumberEnd: 1994
    functionName: nz_strcmp
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int nz_strcmp(int nzlength, const char *nz, const char *z)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:2002,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:2003,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:2004,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:2005,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:2006,1
    - Dst: APPEND_STAT
      Src: /src/memcached/memcached.c:2007,1
    - Dst: global_page_pool_size
      Src: /src/memcached/memcached.c:2007,1
    - Dst: item_stats_totals
      Src: /src/memcached/memcached.c:2008,1
    - Dst: nz_strcmp
      Src: /src/memcached/memcached.c:2009,1
    - Dst: item_stats
      Src: /src/memcached/memcached.c:2010,1
    - Dst: nz_strcmp
      Src: /src/memcached/memcached.c:2011,1
    - Dst: slabs_stats
      Src: /src/memcached/memcached.c:2012,1
    - Dst: nz_strcmp
      Src: /src/memcached/memcached.c:2013,1
    - Dst: item_stats_sizes
      Src: /src/memcached/memcached.c:2014,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - stat_type
    - nkey
    - add_stats
    - c
    argTypes:
    - char*
    - int
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1996
    functionDepth: 3
    functionLinenumber: 1996
    functionLinenumberEnd: 2023
    functionName: get_stats
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - global_page_pool_size
    - nz_strcmp
    - item_stats_sizes
    - item_stats
    - slabs_stats
    - item_stats_totals
    - APPEND_STAT
    - STATS_LOCK
    - STATS_UNLOCK
    linkageType: ''
    returnType: bool
    signature: bool get_stats(const char *stat_type, int nkey, ADD_STAT add_stats,
      void *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/memcached/memcached.c:2034,1
    - Dst: ntohs
      Src: /src/memcached/memcached.c:2038,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:2039,1
    - Dst: inet_ntop
      Src: /src/memcached/memcached.c:2045,1
    - Dst: strncat
      Src: /src/memcached/memcached.c:2049,1
    - Dst: ntohs
      Src: /src/memcached/memcached.c:2051,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:2052,1
    - Dst: strncpy
      Src: /src/memcached/memcached.c:2076,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:2086,1
    - Dst: snprintf
      Src: /src/memcached/memcached.c:2091,1
    - Dst: snprintf
      Src: /src/memcached/memcached.c:2095,1
    - Dst: snprintf
      Src: /src/memcached/memcached.c:2097,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - c
    - af
    - addr
    - sock_addr
    argTypes:
    - conn*
    - int
    - char*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2099
    functionName: get_conn_text
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - strncat
    - inet_ntop
    - snprintf
    - strncpy
    - strlen
    - IS_UDP
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void get_conn_text(const conn *c, const int af,\n                char*
      addr, struct sockaddr *sock_addr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/memcached.c:2103,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:2105,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:2112,1
    - Dst: memset
      Src: /src/memcached/memcached.c:2114,1
    - Dst: getsockname
      Src: /src/memcached/memcached.c:2117,1
    - Dst: get_conn_text
      Src: /src/memcached/memcached.c:2123,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:2125,1
    - Dst: memset
      Src: /src/memcached/memcached.c:2128,1
    - Dst: getsockname
      Src: /src/memcached/memcached.c:2130,1
    - Dst: get_conn_text
      Src: /src/memcached/memcached.c:2131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - c
    - addr
    - svr_addr
    argTypes:
    - conn*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2101
    functionDepth: 2
    functionLinenumber: 2101
    functionLinenumberEnd: 2134
    functionName: conn_to_str
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - memcpy
    - getsockname
    - IS_UDP
    - memset
    - get_conn_text
    linkageType: ''
    returnType: void
    signature: void conn_to_str(const conn *c, char *addr, char *svr_addr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/memcached.c:2143,1
    - Dst: memset
      Src: /src/memcached/memcached.c:2144,1
    - Dst: assert
      Src: /src/memcached/memcached.c:2147,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:2156,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/memcached.c:2157,1
    - Dst: conn_to_str
      Src: /src/memcached/memcached.c:2161,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/memcached.c:2163,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:2165,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/memcached.c:2166,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/memcached.c:2168,1
    - Dst: state_text
      Src: /src/memcached/memcached.c:2169,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/memcached.c:2171,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/memcached.c:2173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts:
    - condition: (add_stats)
      pos:
        line_end: 2146
        line_start: 2146
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2178
      start: 2136
    functionDepth: 3
    functionLinenumber: 2136
    functionLinenumberEnd: 2178
    functionName: process_stats_conns
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - conn_to_str
    - assert
    - IS_UDP
    - APPEND_NUM_STAT
    - state_text
    - memset
    linkageType: ''
    returnType: void
    signature: void process_stats_conns(ADD_STAT add_stats, void *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: item_touch
      Src: /src/memcached/memcached.c:2184,1
    - Dst: item_get
      Src: /src/memcached/memcached.c:2186,1
    - Dst: item_remove
      Src: /src/memcached/memcached.c:2189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - key
    - nkey
    - t
    - exptime
    - should_touch
    - do_update
    - overflow
    argTypes:
    - char*
    - size_t
    - LIBEVENT_THREAD*
    - uint32_t
    - bool
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2181
    functionDepth: 1
    functionLinenumber: 2181
    functionLinenumberEnd: 2196
    functionName: limited_get
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 3
    functionsReached:
    - item_touch
    - item_remove
    - item_get
    linkageType: ''
    returnType: item
    signature: item * limited_get(const char *key, size_t nkey, LIBEVENT_THREAD *t,
      uint32_t exptime, bool should_touch, bool do_update, bool *overflow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: item_get_locked
      Src: /src/memcached/memcached.c:2204,1
    - Dst: do_item_remove
      Src: /src/memcached/memcached.c:2206,1
    - Dst: item_unlock
      Src: /src/memcached/memcached.c:2208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - key
    - nkey
    - t
    - do_update
    - hv
    - overflow
    argTypes:
    - char*
    - size_t
    - LIBEVENT_THREAD*
    - bool
    - uint32_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2214
    functionName: limited_get_locked
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - do_item_remove
    - item_get_locked
    - item_unlock
    linkageType: ''
    returnType: item
    signature: item * limited_get_locked(const char *key, size_t nkey, LIBEVENT_THREAD
      *t, bool do_update, uint32_t *hv, bool *overflow)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2341,1
    - Dst: assert
      Src: /src/memcached/memcached.c:2342,1
    - Dst: assert
      Src: /src/memcached/memcached.c:2343,1
    - Dst: assert
      Src: /src/memcached/memcached.c:2344,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:2356,1
    - Dst: prot_text
      Src: /src/memcached/memcached.c:2357,1
    - Dst: conn*::try_read_command
      Src: /src/memcached/memcached.c:2360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 2340
        line_start: 2340
        source_file: /src/memcached/memcached.c
    - condition: (c->protocol == negotiating_prot)
      pos:
        line_end: 2341
        line_start: 2341
        source_file: /src/memcached/memcached.c
    - condition: (c->rcurr <= (c->rbuf + c->rsize))
      pos:
        line_end: 2342
        line_start: 2342
        source_file: /src/memcached/memcached.c
    - condition: (c->rbytes > 0)
      pos:
        line_end: 2343
        line_start: 2343
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2361
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2361
    functionName: try_read_command_negotiate
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fprintf
    - conn*::try_read_command
    - assert
    - prot_text
    linkageType: ''
    returnType: int
    signature: int try_read_command_negotiate(conn *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2364,1
    - Dst: assert
      Src: /src/memcached/memcached.c:2365,1
    - Dst: assert
      Src: /src/memcached/memcached.c:2366,1
    - Dst: try_read_command_binary
      Src: /src/memcached/memcached.c:2370,1
    - Dst: try_read_command_ascii
      Src: /src/memcached/memcached.c:2373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 2363
        line_start: 2363
        source_file: /src/memcached/memcached.c
    - condition: (c->rbytes > 0)
      pos:
        line_end: 2365
        line_start: 2365
        source_file: /src/memcached/memcached.c
    - condition: (c->rcurr <= (c->rbuf + c->rsize))
      pos:
        line_end: 2364
        line_start: 2364
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2375
      start: 2363
    functionDepth: 2
    functionLinenumber: 2363
    functionLinenumberEnd: 2375
    functionName: try_read_command_udp
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - try_read_command_binary
    - assert
    - try_read_command_ascii
    linkageType: ''
    returnType: int
    signature: int try_read_command_udp(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2383,1
    - Dst: recvfrom
      Src: /src/memcached/memcached.c:2386,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:2391,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:2393,1
    - Dst: memmove
      Src: /src/memcached/memcached.c:2405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 2382
        line_start: 2382
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2412
      start: 2380
    functionDepth: 0
    functionLinenumber: 2380
    functionLinenumberEnd: 2412
    functionName: try_read_udp
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - memmove
    - recvfrom
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - assert
    linkageType: ''
    returnType: enum try_read_result
    signature: enum try_read_result try_read_udp(conn *c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2430,1
    - Dst: memmove
      Src: /src/memcached/memcached.c:2434,1
    - Dst: realloc
      Src: /src/memcached/memcached.c:2445,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:2447,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:2449,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:2451,1
    - Dst: out_of_memory
      Src: /src/memcached/memcached.c:2454,1
    - Dst: conn*::read
      Src: /src/memcached/memcached.c:2463,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:2465,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:2467,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 2429
        line_start: 2429
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2489
      start: 2426
    functionDepth: 4
    functionLinenumber: 2426
    functionLinenumberEnd: 2489
    functionName: try_read_network
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - memmove
    - fprintf
    - conn*::read
    - pthread_mutex_unlock
    - out_of_memory
    - pthread_mutex_lock
    - assert
    - STATS_LOCK
    - realloc
    - STATS_UNLOCK
    linkageType: ''
    returnType: enum try_read_result
    signature: enum try_read_result try_read_network(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2492,1
    - Dst: event_del
      Src: /src/memcached/memcached.c:2497,1
    - Dst: event_set
      Src: /src/memcached/memcached.c:2498,1
    - Dst: event_base_set
      Src: /src/memcached/memcached.c:2499,1
    - Dst: event_add
      Src: /src/memcached/memcached.c:2501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - new_flags
    argTypes:
    - conn*
    - int
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 2491
        line_start: 2491
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2503
      start: 2491
    functionDepth: 1
    functionLinenumber: 2491
    functionLinenumberEnd: 2503
    functionName: update_event
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - event_set
    - event_base_set
    - event_del
    - assert
    - event_add
    linkageType: ''
    returnType: bool
    signature: bool update_event(conn *c, const int new_flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: update_event
      Src: /src/memcached/memcached.c:2513,1
    - Dst: listen
      Src: /src/memcached/memcached.c:2514,1
    - Dst: perror
      Src: /src/memcached/memcached.c:2515,1
    - Dst: update_event
      Src: /src/memcached/memcached.c:2519,1
    - Dst: listen
      Src: /src/memcached/memcached.c:2520,1
    - Dst: perror
      Src: /src/memcached/memcached.c:2521,1
    - Dst: gettimeofday
      Src: /src/memcached/memcached.c:2529,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:2530,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:2536,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:2538,1
    - Dst: gettimeofday
      Src: /src/memcached/memcached.c:2540,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:2542,1
    - Dst: maxconns_handler
      Src: /src/memcached/memcached.c:2544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - do_accept
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2508
    functionDepth: 2
    functionLinenumber: 2508
    functionLinenumberEnd: 2546
    functionName: do_accept_new_conns
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - maxconns_handler
    - update_event
    - listen
    - STATS_LOCK
    - perror
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void do_accept_new_conns(const bool do_accept)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_schunk
      Src: /src/memcached/memcached.c:2563,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:2602,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 4
    argNames:
    - c
    - iovs
    - iovused
    - one_resp
    argTypes:
    - conn*
    - struct iovec*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2550
    functionDepth: 1
    functionLinenumber: 2550
    functionLinenumberEnd: 2613
    functionName: _transmit_pre
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _transmit_pre(conn *c, struct iovec *iovs, int iovused, bool one_resp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: resp_finish
      Src: /src/memcached/memcached.c:2626,1
    - Dst: resp_finish
      Src: /src/memcached/memcached.c:2633,1
    - Dst: resp_finish
      Src: /src/memcached/memcached.c:2661,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - c
    - res
    argTypes:
    - conn*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2619
    functionDepth: 3
    functionLinenumber: 2619
    functionLinenumberEnd: 2667
    functionName: _transmit_post
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - resp_finish
    linkageType: ''
    returnType: void
    signature: void _transmit_post(conn *c, ssize_t res)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2679,1
    - Dst: memset
      Src: /src/memcached/memcached.c:2685,1
    - Dst: _transmit_pre
      Src: /src/memcached/memcached.c:2688,1
    - Dst: _transmit_post
      Src: /src/memcached/memcached.c:2692,1
    - Dst: conn*::sendmsg
      Src: /src/memcached/memcached.c:2699,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:2701,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:2703,1
    - Dst: _transmit_post
      Src: /src/memcached/memcached.c:2706,1
    - Dst: update_event
      Src: /src/memcached/memcached.c:2716,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:2718,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:2719,1
    - Dst: perror
      Src: /src/memcached/memcached.c:2727,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:2729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 2678
        line_start: 2678
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2731
      start: 2678
    functionDepth: 4
    functionLinenumber: 2678
    functionLinenumberEnd: 2731
    functionName: transmit
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - perror
    - _transmit_post
    - conn*::sendmsg
    - _transmit_pre
    - assert
    - conn_set_state
    - update_event
    - memset
    linkageType: ''
    returnType: enum transmit_result
    signature: enum transmit_result transmit(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - hdr
    - resp
    argTypes:
    - unsigned char*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2733
    functionDepth: 0
    functionLinenumber: 2733
    functionLinenumberEnd: 2761
    functionName: build_udp_header
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void build_udp_header(unsigned char *hdr, mc_resp *resp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2776,1
    - Dst: resp_finish
      Src: /src/memcached/memcached.c:2792,1
    - Dst: memset
      Src: /src/memcached/memcached.c:2797,1
    - Dst: build_udp_header
      Src: /src/memcached/memcached.c:2807,1
    - Dst: _transmit_pre
      Src: /src/memcached/memcached.c:2813,1
    - Dst: sendmsg
      Src: /src/memcached/memcached.c:2835,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:2837,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:2839,1
    - Dst: _transmit_post
      Src: /src/memcached/memcached.c:2845,1
    - Dst: update_event
      Src: /src/memcached/memcached.c:2855,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:2857,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:2858,1
    - Dst: perror
      Src: /src/memcached/memcached.c:2866,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:2868,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 2775
        line_start: 2775
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2870
      start: 2775
    functionDepth: 4
    functionLinenumber: 2775
    functionLinenumberEnd: 2870
    functionName: transmit_udp
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - resp_finish
    - fprintf
    - sendmsg
    - build_udp_header
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - perror
    - _transmit_post
    - _transmit_pre
    - assert
    - conn_set_state
    - update_event
    - memset
    linkageType: ''
    returnType: enum transmit_result
    signature: enum transmit_result transmit_udp(conn *c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2880,1
    - Dst: do_item_alloc_chunk
      Src: /src/memcached/memcached.c:2890,1
    - Dst: memmove
      Src: /src/memcached/memcached.c:2910,1
    - Dst: conn*::read
      Src: /src/memcached/memcached.c:2922,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:2925,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:2927,1
    - Dst: do_item_alloc_chunk
      Src: /src/memcached/memcached.c:2947,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c->rcurr != c->ritem)
      pos:
        line_end: 2879
        line_start: 2879
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 2954
      start: 2877
    functionDepth: 1
    functionLinenumber: 2877
    functionLinenumberEnd: 2954
    functionName: read_into_chunked_item
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - memmove
    - do_item_alloc_chunk
    - conn*::read
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - assert
    linkageType: ''
    returnType: int
    signature: int read_into_chunked_item(conn *c)
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:2970,1
    - Dst: accept4
      Src: /src/memcached/memcached.c:2979,1
    - Dst: accept
      Src: /src/memcached/memcached.c:2981,1
    - Dst: accept
      Src: /src/memcached/memcached.c:2984,1
    - Dst: perror
      Src: /src/memcached/memcached.c:2991,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:2997,1
    - Dst: accept_new_conns
      Src: /src/memcached/memcached.c:2998,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3001,1
    - Dst: fcntl
      Src: /src/memcached/memcached.c:3007,1
    - Dst: fcntl
      Src: /src/memcached/memcached.c:3007,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3008,1
    - Dst: close
      Src: /src/memcached/memcached.c:3009,1
    - Dst: STATS_LOCK
      Src: /src/memcached/memcached.c:3018,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/memcached.c:3020,1
    - Dst: write
      Src: /src/memcached/memcached.c:3028,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3028,1
    - Dst: close
      Src: /src/memcached/memcached.c:3029,1
    - Dst: ssl_accept
      Src: /src/memcached/memcached.c:3033,1
    - Dst: close
      Src: /src/memcached/memcached.c:3035,1
    - Dst: dispatch_conn_new
      Src: /src/memcached/memcached.c:3039,1
    - Dst: rbuf_release
      Src: /src/memcached/memcached.c:3047,1
    - Dst: update_event
      Src: /src/memcached/memcached.c:3048,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3050,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3051,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3055,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3060,1
    - Dst: rbuf_alloc
      Src: /src/memcached/memcached.c:3062,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3064,1
    - Dst: try_read_network
      Src: /src/memcached/memcached.c:3067,1
    - Dst: try_read_udp
      Src: /src/memcached/memcached.c:3070,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3075,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3078,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3081,1
    - Dst: conn*::try_read_command
      Src: /src/memcached/memcached.c:3090,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3094,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3096,1
    - Dst: reset_cmd_handler
      Src: /src/memcached/memcached.c:3108,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3111,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:3113,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:3115,1
    - Dst: update_event
      Src: /src/memcached/memcached.c:3123,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3125,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3126,1
    - Dst: complete_nread
      Src: /src/memcached/memcached.c:3136,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3143,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3145,1
    - Dst: memmove
      Src: /src/memcached/memcached.c:3153,1
    - Dst: conn*::read
      Src: /src/memcached/memcached.c:3164,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:3166,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:3168,1
    - Dst: read_into_chunked_item
      Src: /src/memcached/memcached.c:3177,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3184,1
    - Dst: update_event
      Src: /src/memcached/memcached.c:3189,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3191,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3192,1
    - Dst: out_of_memory
      Src: /src/memcached/memcached.c:3201,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3203,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3208,1
    - Dst: strerror
      Src: /src/memcached/memcached.c:3211,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3215,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3221,1
    - Dst: conn*::read
      Src: /src/memcached/memcached.c:3235,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/memcached.c:3237,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/memcached.c:3239,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3245,1
    - Dst: update_event
      Src: /src/memcached/memcached.c:3249,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3251,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3252,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3260,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3261,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3274,1
    - Dst: thread_io_queue_submit
      Src: /src/memcached/memcached.c:3277,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3284,1
    - Dst: transmit
      Src: /src/memcached/memcached.c:3284,1
    - Dst: transmit_udp
      Src: /src/memcached/memcached.c:3284,1
    - Dst: conn_release_items
      Src: /src/memcached/memcached.c:3288,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3289,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3291,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3295,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3296,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3312,1
    - Dst: conn_cleanup
      Src: /src/memcached/memcached.c:3313,1
    - Dst: conn_close
      Src: /src/memcached/memcached.c:3315,1
    - Dst: abort
      Src: /src/memcached/memcached.c:3322,1
    - Dst: event_del
      Src: /src/memcached/memcached.c:3331,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3332,1
    - Dst: assert
      Src: /src/memcached/memcached.c:3337,1
    - Dst: conn_set_state
      Src: /src/memcached/memcached.c:3341,1
    - Dst: assert
      Src: /src/memcached/memcached.c:3344,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 295
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 3336
        line_start: 3336
        source_file: /src/memcached/memcached.c
    - condition: (c != NULL)
      pos:
        line_end: 2969
        line_start: 2969
        source_file: /src/memcached/memcached.c
    - condition: (false)
      pos:
        line_end: 3343
        line_start: 3343
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 3350
      start: 2956
    functionDepth: 5
    functionLinenumber: 2956
    functionLinenumberEnd: 3350
    functionName: drive_machine
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 4
    functionsReached:
    - transmit
    - rbuf_alloc
    - rbuf_release
    - strlen
    - ssl_accept
    - event_del
    - conn*::try_read_command
    - dispatch_conn_new
    - STATS_LOCK
    - accept
    - assert
    - conn_set_state
    - close
    - out_of_memory
    - update_event
    - conn_cleanup
    - conn_close
    - STATS_UNLOCK
    - write
    - memmove
    - conn*::read
    - pthread_mutex_lock
    - transmit_udp
    - strerror
    - complete_nread
    - conn_release_items
    - accept4
    - perror
    - fprintf
    - fcntl
    - pthread_mutex_unlock
    - accept_new_conns
    - try_read_udp
    - read_into_chunked_item
    - abort
    - IS_UDP
    - thread_io_queue_submit
    - try_read_network
    - reset_cmd_handler
    linkageType: ''
    returnType: void
    signature: void drive_machine(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/memcached.c:3356,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3363,1
    - Dst: conn_close
      Src: /src/memcached/memcached.c:3364,1
    - Dst: drive_machine
      Src: /src/memcached/memcached.c:3368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 3355
        line_start: 3355
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 3372
      start: 3352
    functionDepth: 6
    functionLinenumber: 3352
    functionLinenumberEnd: 3372
    functionName: event_handler
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fprintf
    - conn_close
    - assert
    - drive_machine
    linkageType: ''
    returnType: void
    signature: void event_handler(const evutil_socket_t fd, const short which, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/memcached/memcached.c:3378,1
    - Dst: fcntl
      Src: /src/memcached/memcached.c:3382,1
    - Dst: fcntl
      Src: /src/memcached/memcached.c:3383,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3384,1
    - Dst: close
      Src: /src/memcached/memcached.c:3385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3389
      start: 3374
    functionDepth: 0
    functionLinenumber: 3374
    functionLinenumberEnd: 3389
    functionName: new_socket
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fcntl
    - socket
    - perror
    - close
    linkageType: ''
    returnType: int
    signature: int new_socket(struct addrinfo *ai)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3456,1
    - Dst: snprintf
      Src: /src/memcached/memcached.c:3461,1
    - Dst: getaddrinfo
      Src: /src/memcached/memcached.c:3462,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3465,1
    - Dst: gai_strerror
      Src: /src/memcached/memcached.c:3465,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3467,1
    - Dst: new_socket
      Src: /src/memcached/memcached.c:3473,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3479,1
    - Dst: exit
      Src: /src/memcached/memcached.c:3480,1
    - Dst: getsockopt
      Src: /src/memcached/memcached.c:3488,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3490,1
    - Dst: exit
      Src: /src/memcached/memcached.c:3491,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3497,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3499,1
    - Dst: close
      Src: /src/memcached/memcached.c:3500,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3507,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3509,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3513,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3514,1
    - Dst: maximize_sndbuf
      Src: /src/memcached/memcached.c:3515,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3517,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3519,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3521,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3523,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3525,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3527,1
    - Dst: bind
      Src: /src/memcached/memcached.c:3530,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3532,1
    - Dst: close
      Src: /src/memcached/memcached.c:3533,1
    - Dst: freeaddrinfo
      Src: /src/memcached/memcached.c:3534,1
    - Dst: close
      Src: /src/memcached/memcached.c:3537,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3541,1
    - Dst: listen
      Src: /src/memcached/memcached.c:3541,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3542,1
    - Dst: close
      Src: /src/memcached/memcached.c:3543,1
    - Dst: freeaddrinfo
      Src: /src/memcached/memcached.c:3544,1
    - Dst: getsockname
      Src: /src/memcached/memcached.c:3555,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3557,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3558,1
    - Dst: ntohs
      Src: /src/memcached/memcached.c:3559,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3561,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3562,1
    - Dst: ntohs
      Src: /src/memcached/memcached.c:3563,1
    - Dst: IS_UDP
      Src: /src/memcached/memcached.c:3569,1
    - Dst: dup
      Src: /src/memcached/memcached.c:3585,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3587,1
    - Dst: exit
      Src: /src/memcached/memcached.c:3588,1
    - Dst: dispatch_conn_new
      Src: /src/memcached/memcached.c:3591,1
    - Dst: conn_new
      Src: /src/memcached/memcached.c:3596,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3599,1
    - Dst: exit
      Src: /src/memcached/memcached.c:3600,1
    - Dst: assert
      Src: /src/memcached/memcached.c:3605,1
    - Dst: freeaddrinfo
      Src: /src/memcached/memcached.c:3612,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 108
    argCount: 7
    argNames:
    - interface
    - port
    - transport
    - portnumber_file
    - ssl_enabled
    - conntag
    - bproto
    argTypes:
    - char*
    - int
    - enum network_transport
    - FILE*
    - uint8_t
    - uint64_t
    - enum protocol
    assertStmts:
    - condition: (ssl_enabled == false)
      pos:
        line_end: 3604
        line_start: 3604
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 3616
      start: 3439
    functionDepth: 2
    functionLinenumber: 3439
    functionLinenumberEnd: 3616
    functionName: server_socket
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - getaddrinfo
    - setsockopt
    - snprintf
    - maximize_sndbuf
    - listen
    - dispatch_conn_new
    - ntohs
    - freeaddrinfo
    - exit
    - assert
    - close
    - new_socket
    - gai_strerror
    - getsockname
    - dup
    - getsockopt
    - perror
    - fprintf
    - IS_UDP
    - bind
    - conn_new
    linkageType: ''
    returnType: int
    signature: "int server_socket(const char *interface,\n                         int
      port,\n                         enum network_transport transport,\n                         FILE
      *portnumber_file, uint8_t ssl_enabled,\n                         uint64_t conntag,\n
      \                        enum protocol bproto)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: server_socket
      Src: /src/memcached/memcached.c:3630,1
    - Dst: strdup
      Src: /src/memcached/memcached.c:3635,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3638,1
    - Dst: strtok_r
      Src: /src/memcached/memcached.c:3643,1
    - Dst: strtok_r
      Src: /src/memcached/memcached.c:3645,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3652,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3652,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3654,1
    - Dst: free
      Src: /src/memcached/memcached.c:3655,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3659,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3660,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3660,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3662,1
    - Dst: free
      Src: /src/memcached/memcached.c:3663,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3667,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3668,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3668,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3670,1
    - Dst: free
      Src: /src/memcached/memcached.c:3671,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3675,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3681,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3681,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3682,1
    - Dst: strchr
      Src: /src/memcached/memcached.c:3684,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3686,1
    - Dst: free
      Src: /src/memcached/memcached.c:3687,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3696,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3698,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3700,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3702,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3707,1
    - Dst: free
      Src: /src/memcached/memcached.c:3708,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3712,1
    - Dst: free
      Src: /src/memcached/memcached.c:3713,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:3721,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3721,1
    - Dst: strlen
      Src: /src/memcached/memcached.c:3722,1
    - Dst: strchr
      Src: /src/memcached/memcached.c:3726,1
    - Dst: strchr
      Src: /src/memcached/memcached.c:3728,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3731,1
    - Dst: free
      Src: /src/memcached/memcached.c:3732,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3743,1
    - Dst: free
      Src: /src/memcached/memcached.c:3744,1
    - Dst: memcpy
      Src: /src/memcached/memcached.c:3750,1
    - Dst: strchr
      Src: /src/memcached/memcached.c:3758,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3760,1
    - Dst: free
      Src: /src/memcached/memcached.c:3761,1
    - Dst: strchr
      Src: /src/memcached/memcached.c:3769,1
    - Dst: strchr
      Src: /src/memcached/memcached.c:3775,1
    - Dst: safe_strtol
      Src: /src/memcached/memcached.c:3778,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3779,1
    - Dst: free
      Src: /src/memcached/memcached.c:3780,1
    - Dst: strcmp
      Src: /src/memcached/memcached.c:3789,1
    - Dst: server_socket
      Src: /src/memcached/memcached.c:3792,1
    - Dst: free
      Src: /src/memcached/memcached.c:3795,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 132
    argCount: 3
    argNames:
    - port
    - transport
    - portnumber_file
    argTypes:
    - int
    - enum network_transport
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3618
    functionDepth: 3
    functionLinenumber: 3618
    functionLinenumberEnd: 3799
    functionName: server_sockets
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    - memcpy
    - safe_strtol
    - strncmp
    - strlen
    - strcmp
    - server_socket
    - strdup
    - strchr
    - strtok_r
    linkageType: ''
    returnType: int
    signature: "int server_sockets(int port, enum network_transport transport,\n                          FILE
      *portnumber_file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/memcached/memcached.c:3806,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3807,1
    - Dst: fcntl
      Src: /src/memcached/memcached.c:3811,1
    - Dst: fcntl
      Src: /src/memcached/memcached.c:3812,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3813,1
    - Dst: close
      Src: /src/memcached/memcached.c:3814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3802
    functionDepth: 0
    functionLinenumber: 3802
    functionLinenumberEnd: 3818
    functionName: new_socket_unix
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - perror
    - socket
    - fcntl
    - close
    linkageType: ''
    returnType: int
    signature: int new_socket_unix(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: new_socket_unix
      Src: /src/memcached/memcached.c:3832,1
    - Dst: lstat
      Src: /src/memcached/memcached.c:3839,1
    - Dst: S_ISSOCK
      Src: /src/memcached/memcached.c:3840,1
    - Dst: unlink
      Src: /src/memcached/memcached.c:3841,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3844,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3845,1
    - Dst: setsockopt
      Src: /src/memcached/memcached.c:3846,1
    - Dst: memset
      Src: /src/memcached/memcached.c:3852,1
    - Dst: strncpy
      Src: /src/memcached/memcached.c:3855,1
    - Dst: assert
      Src: /src/memcached/memcached.c:3856,1
    - Dst: strcmp
      Src: /src/memcached/memcached.c:3856,1
    - Dst: umask
      Src: /src/memcached/memcached.c:3857,1
    - Dst: bind
      Src: /src/memcached/memcached.c:3858,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3859,1
    - Dst: close
      Src: /src/memcached/memcached.c:3860,1
    - Dst: umask
      Src: /src/memcached/memcached.c:3861,1
    - Dst: umask
      Src: /src/memcached/memcached.c:3864,1
    - Dst: listen
      Src: /src/memcached/memcached.c:3865,1
    - Dst: perror
      Src: /src/memcached/memcached.c:3866,1
    - Dst: close
      Src: /src/memcached/memcached.c:3867,1
    - Dst: conn_new
      Src: /src/memcached/memcached.c:3870,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:3873,1
    - Dst: exit
      Src: /src/memcached/memcached.c:3874,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - path
    - access_mask
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (strcmp(addr.sun_path, path) == 0)
      pos:
        line_end: 3855
        line_start: 3855
        source_file: /src/memcached/memcached.c
    constantsTouched: []
    func_position:
      end: 3878
      start: 3820
    functionDepth: 2
    functionLinenumber: 3820
    functionLinenumberEnd: 3878
    functionName: server_socket_unix
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - conn_new
    - umask
    - fprintf
    - S_ISSOCK
    - new_socket_unix
    - setsockopt
    - strncpy
    - exit
    - lstat
    - memset
    - assert
    - bind
    - close
    - listen
    - perror
    - unlink
    - strcmp
    linkageType: ''
    returnType: int
    signature: int server_socket_unix(const char *path, int access_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - access_mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3880
    functionDepth: 0
    functionLinenumber: 3880
    functionLinenumberEnd: 3881
    functionName: server_socket_unix
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: server_socket_unix(path, access_mask)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/memcached/memcached.c:3912,1
    - Dst: assoc_start_expand
      Src: /src/memcached/memcached.c:3919,1
    - Dst: authfile_load
      Src: /src/memcached/memcached.c:3925,1
    - Dst: refresh_certs
      Src: /src/memcached/memcached.c:3930,1
    - Dst: vperror
      Src: /src/memcached/memcached.c:3932,1
    - Dst: free
      Src: /src/memcached/memcached.c:3933,1
    - Dst: proxy_start_reload
      Src: /src/memcached/memcached.c:3940,1
    - Dst: evtimer_set
      Src: /src/memcached/memcached.c:3945,1
    - Dst: event_base_set
      Src: /src/memcached/memcached.c:3946,1
    - Dst: evtimer_add
      Src: /src/memcached/memcached.c:3947,1
    - Dst: clock_gettime
      Src: /src/memcached/memcached.c:3956,1
    - Dst: gettimeofday
      Src: /src/memcached/memcached.c:3968,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3975
      start: 3906
    functionDepth: 1
    functionLinenumber: 3906
    functionLinenumberEnd: 3975
    functionName: clock_handler
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - free
    - gettimeofday
    - event_base_set
    - evtimer_set
    - proxy_start_reload
    - vperror
    - assoc_start_expand
    - refresh_certs
    - authfile_load
    - clock_gettime
    - evtimer_del
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void clock_handler(const evutil_socket_t fd, const short which, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3979
      start: 3977
    functionDepth: 0
    functionLinenumber: 3977
    functionLinenumberEnd: 3979
    functionName: flag_enabled_disabled
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * flag_enabled_disabled(bool flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/memcached/memcached.c:3983,1
    - Dst: exit
      Src: /src/memcached/memcached.c:3985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - param
    - condition
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3981
    functionDepth: 0
    functionLinenumber: 3981
    functionLinenumberEnd: 3987
    functionName: verify_default
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void verify_default(const char* param, bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/memcached/memcached.c:3990,1
    - Dst: printf
      Src: /src/memcached/memcached.c:3991,1
    - Dst: printf
      Src: /src/memcached/memcached.c:3995,1
    - Dst: printf
      Src: /src/memcached/memcached.c:3996,1
    - Dst: printf
      Src: /src/memcached/memcached.c:3999,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4000,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4005,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4008,1
    - Dst: verify_default
      Src: /src/memcached/memcached.c:4026,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4027,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4028,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4034,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4035,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4038,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4039,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4040,1
    - Dst: prot_text
      Src: /src/memcached/memcached.c:4041,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4042,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4046,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4048,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4049,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4050,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4051,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4053,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4057,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4059,1
    - Dst: flag_enabled_disabled
      Src: /src/memcached/memcached.c:4075,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4077,1
    - Dst: verify_default
      Src: /src/memcached/memcached.c:4081,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4082,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4094,1
    - Dst: verify_default
      Src: /src/memcached/memcached.c:4106,1
    - Dst: verify_default
      Src: /src/memcached/memcached.c:4107,1
    - Dst: verify_default
      Src: /src/memcached/memcached.c:4108,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4110,1
    - Dst: verify_default
      Src: /src/memcached/memcached.c:4114,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4116,1
    - Dst: flag_enabled_disabled
      Src: /src/memcached/memcached.c:4117,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4121,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4124,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4125,1
    - Dst: flag_enabled_disabled
      Src: /src/memcached/memcached.c:4145,1
    - Dst: verify_default
      Src: /src/memcached/memcached.c:4147,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4150,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4154,1
    - Dst: ssl_help
      Src: /src/memcached/memcached.c:4157,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4160
      start: 3989
    functionDepth: 1
    functionLinenumber: 3989
    functionLinenumberEnd: 4160
    functionName: usage
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 1
    functionsReached:
    - printf
    - ssl_help
    - verify_default
    - prot_text
    - flag_enabled_disabled
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/memcached/memcached.c:4163,1
    - Dst: printf
      Src: /src/memcached/memcached.c:4164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4198
      start: 4162
    functionDepth: 0
    functionLinenumber: 4162
    functionLinenumberEnd: 4198
    functionName: usage_license
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage_license(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/memcached/memcached.c:4202,1
    - Dst: fopen
      Src: /src/memcached/memcached.c:4203,1
    - Dst: fgets
      Src: /src/memcached/memcached.c:4205,1
    - Dst: safe_strtoul
      Src: /src/memcached/memcached.c:4207,1
    - Dst: kill
      Src: /src/memcached/memcached.c:4207,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4208,1
    - Dst: fclose
      Src: /src/memcached/memcached.c:4211,1
    - Dst: snprintf
      Src: /src/memcached/memcached.c:4221,1
    - Dst: fopen
      Src: /src/memcached/memcached.c:4223,1
    - Dst: vperror
      Src: /src/memcached/memcached.c:4224,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4228,1
    - Dst: getpid
      Src: /src/memcached/memcached.c:4228,1
    - Dst: fclose
      Src: /src/memcached/memcached.c:4229,1
    - Dst: vperror
      Src: /src/memcached/memcached.c:4230,1
    - Dst: rename
      Src: /src/memcached/memcached.c:4233,1
    - Dst: vperror
      Src: /src/memcached/memcached.c:4234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - pid_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4237
      start: 4200
    functionDepth: 1
    functionLinenumber: 4200
    functionLinenumberEnd: 4237
    functionName: save_pid
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fopen
    - fprintf
    - kill
    - fclose
    - getpid
    - snprintf
    - fgets
    - vperror
    - access
    - safe_strtoul
    - rename
    linkageType: ''
    returnType: void
    signature: void save_pid(const char *pid_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/memcached/memcached.c:4243,1
    - Dst: vperror
      Src: /src/memcached/memcached.c:4244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pid_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4239
    functionDepth: 1
    functionLinenumber: 4239
    functionLinenumberEnd: 4247
    functionName: remove_pidfile
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - vperror
    - unlink
    linkageType: ''
    returnType: void
    signature: void remove_pidfile(const char *pid_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4251
      start: 4249
    functionDepth: 0
    functionLinenumber: 4249
    functionLinenumberEnd: 4251
    functionName: sig_handler
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sig_handler(const int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4255
      start: 4253
    functionDepth: 0
    functionLinenumber: 4253
    functionLinenumberEnd: 4255
    functionName: sighup_handler
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sighup_handler(const int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4259
      start: 4257
    functionDepth: 0
    functionLinenumber: 4257
    functionLinenumberEnd: 4259
    functionName: sig_usrhandler
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sig_usrhandler(const int sig)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getpagesizes
      Src: /src/memcached/memcached.c:4269,1
    - Dst: memcntl
      Src: /src/memcached/memcached.c:4285,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4286,1
    - Dst: strerror
      Src: /src/memcached/memcached.c:4287,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4288,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4293,1
    - Dst: strerror
      Src: /src/memcached/memcached.c:4294,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4295,1
    - Dst: open
      Src: /src/memcached/memcached.c:4311,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4316,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4317,1
    - Dst: read
      Src: /src/memcached/memcached.c:4320,1
    - Dst: close
      Src: /src/memcached/memcached.c:4321,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4323,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4324,1
    - Dst: strstr
      Src: /src/memcached/memcached.c:4328,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4329,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4330,1
    - Dst: sysctlbyname
      Src: /src/memcached/memcached.c:4338,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4340,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4344,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4345,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4265
    functionDepth: 1
    functionLinenumber: 4265
    functionLinenumberEnd: 4352
    functionName: enable_large_pages
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sysctlbyname
    - strstr
    - getpagesizes
    - open
    - strerror
    - close
    - read
    - memcntl
    linkageType: ''
    returnType: int
    signature: int enable_large_pages(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_get_version
      Src: /src/memcached/memcached.c:4360,1
    - Dst: strncmp
      Src: /src/memcached/memcached.c:4362,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4363,1
    - Dst: event_get_version
      Src: /src/memcached/memcached.c:4364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4358
    functionDepth: 1
    functionLinenumber: 4358
    functionLinenumberEnd: 4370
    functionName: sanitycheck
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - strncmp
    - fprintf
    - event_get_version
    linkageType: ''
    returnType: bool
    signature: bool sanitycheck(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/memcached.c:4378,1
    - Dst: strtok_r
      Src: /src/memcached/memcached.c:4381,1
    - Dst: strtok_r
      Src: /src/memcached/memcached.c:4383,1
    - Dst: safe_strtoul
      Src: /src/memcached/memcached.c:4384,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4386,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4390,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4394,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - s
    - slab_sizes
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4408
      start: 4372
    functionDepth: 1
    functionLinenumber: 4372
    functionLinenumberEnd: 4408
    functionName: _parse_slab_sizes
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - strlen
    - fprintf
    - strtok_r
    - safe_strtoul
    linkageType: ''
    returnType: bool
    signature: bool _parse_slab_sizes(char *s, uint32_t *slab_sizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4437,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4438,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4439,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4440,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4441,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4442,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4443,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4444,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4453,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4456,1
    - Dst: gettimeofday
      Src: /src/memcached/memcached.c:4459,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4460,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4465,1
    - Dst: get_cas_id
      Src: /src/memcached/memcached.c:4465,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4466,1
    - Dst: logger_get_gid
      Src: /src/memcached/memcached.c:4466,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4467,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4471,1
    - Dst: restart_set_kv
      Src: /src/memcached/memcached.c:4473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - tag
    - ctx
    - data
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4476
      start: 4425
    functionDepth: 1
    functionLinenumber: 4425
    functionLinenumberEnd: 4476
    functionName: _mc_meta_save_cb
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - get_cas_id
    - logger_get_gid
    - gettimeofday
    - restart_set_kv
    linkageType: ''
    returnType: int
    signature: int _mc_meta_save_cb(const char *tag, void *ctx, void *data)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: restart_get_kv
      Src: /src/memcached/memcached.c:4539,1
    - Dst: strcmp
      Src: /src/memcached/memcached.c:4546,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4550,1
    - Dst: strcmp
      Src: /src/memcached/memcached.c:4558,1
    - Dst: strcmp
      Src: /src/memcached/memcached.c:4560,1
    - Dst: safe_strtoull_hex
      Src: /src/memcached/memcached.c:4568,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4569,1
    - Dst: safe_strtoll
      Src: /src/memcached/memcached.c:4574,1
    - Dst: safe_strtol
      Src: /src/memcached/memcached.c:4579,1
    - Dst: safe_strtol
      Src: /src/memcached/memcached.c:4584,1
    - Dst: safe_strtol
      Src: /src/memcached/memcached.c:4589,1
    - Dst: safe_strtol
      Src: /src/memcached/memcached.c:4594,1
    - Dst: strcmp
      Src: /src/memcached/memcached.c:4599,1
    - Dst: safe_strtoull
      Src: /src/memcached/memcached.c:4615,1
    - Dst: set_cas_id
      Src: /src/memcached/memcached.c:4618,1
    - Dst: safe_strtoul
      Src: /src/memcached/memcached.c:4622,1
    - Dst: safe_strtoull
      Src: /src/memcached/memcached.c:4629,1
    - Dst: logger_set_gid
      Src: /src/memcached/memcached.c:4632,1
    - Dst: safe_strtoull
      Src: /src/memcached/memcached.c:4636,1
    - Dst: safe_strtoul
      Src: /src/memcached/memcached.c:4643,1
    - Dst: safe_strtoll
      Src: /src/memcached/memcached.c:4650,1
    - Dst: gettimeofday
      Src: /src/memcached/memcached.c:4654,1
    - Dst: safe_strtoul
      Src: /src/memcached/memcached.c:4666,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4673,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4677,1
    - Dst: fprintf
      Src: /src/memcached/memcached.c:4683,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 134
    argCount: 3
    argNames:
    - tag
    - ctx
    - data
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4688
      start: 4488
    functionDepth: 1
    functionLinenumber: 4488
    functionLinenumberEnd: 4688
    functionName: _mc_meta_load_cb
    functionSourceFile: /src/memcached/memcached.c
    functionUses: 0
    functionsReached:
    - fprintf
    - restart_get_kv
    - safe_strtol
    - gettimeofday
    - safe_strtoull
    - safe_strtoll
    - safe_strtoul
    - set_cas_id
    - safe_strtoull_hex
    - logger_set_gid
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _mc_meta_load_cb(const char *tag, void *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: rot
    functionSourceFile: /src/memcached/jenkins_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rot(x,k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: mix
    functionSourceFile: /src/memcached/jenkins_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: final
    functionSourceFile: /src/memcached/jenkins_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: final(a,b,c)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: mix
      Src: /src/memcached/jenkins_hash.c:149,1
    - Dst: mix
      Src: /src/memcached/jenkins_hash.c:215,1
    - Dst: mix
      Src: /src/memcached/jenkins_hash.c:270,1
    - Dst: final
      Src: /src/memcached/jenkins_hash.c:295,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 202
    argCount: 2
    argNames:
    - key
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 297
    functionName: jenkins_hash
    functionSourceFile: /src/memcached/jenkins_hash.c
    functionUses: 0
    functionsReached:
    - final
    - mix
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t jenkins_hash(\n  const void *key,       /* the key to hash
      */\n  size_t      length)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: mix
      Src: /src/memcached/jenkins_hash.c:327,1
    - Dst: mix
      Src: /src/memcached/jenkins_hash.c:401,1
    - Dst: final
      Src: /src/memcached/jenkins_hash.c:426,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 150
    argCount: 2
    argNames:
    - key
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 428
    functionName: jenkins_hash
    functionSourceFile: /src/memcached/jenkins_hash.c
    functionUses: 0
    functionsReached:
    - final
    - mix
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t jenkins_hash( const void *key, size_t length)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_ustats.c:8,1
    - Dst: luaL_checkstring
      Src: /src/memcached/proxy_ustats.c:9,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_ustats.c:10,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_ustats.c:13,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_ustats.c:17,1
    - Dst: strlen
      Src: /src/memcached/proxy_ustats.c:21,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_ustats.c:23,1
    - Dst: strlen
      Src: /src/memcached/proxy_ustats.c:27,1
    - Dst: isspace
      Src: /src/memcached/proxy_ustats.c:28,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_ustats.c:29,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_ustats.c:34,1
    - Dst: calloc
      Src: /src/memcached/proxy_ustats.c:41,1
    - Dst: memcpy
      Src: /src/memcached/proxy_ustats.c:44,1
    - Dst: free
      Src: /src/memcached/proxy_ustats.c:45,1
    - Dst: strcmp
      Src: /src/memcached/proxy_ustats.c:56,1
    - Dst: free
      Src: /src/memcached/proxy_ustats.c:58,1
    - Dst: strdup
      Src: /src/memcached/proxy_ustats.c:59,1
    - Dst: strcmp
      Src: /src/memcached/proxy_ustats.c:64,1
    - Dst: strdup
      Src: /src/memcached/proxy_ustats.c:66,1
    - Dst: strdup
      Src: /src/memcached/proxy_ustats.c:69,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_ustats.c:71,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 74
    functionName: mcplib_add_stat
    functionSourceFile: /src/memcached/proxy_ustats.c
    functionUses: 0
    functionsReached:
    - free
    - memcpy
    - STAT_UL
    - proxy_lua_ferror
    - luaL_checkstring
    - strlen
    - strcmp
    - PROXY_GET_CTX
    - STAT_L
    - proxy_lua_error
    - strdup
    - isspace
    - calloc
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_add_stat(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_ustats.c:77,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_ustats.c:79,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_ustats.c:85,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_ustats.c:89,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_ustats.c:90,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_ustats.c:93,1
    - Dst: WSTAT_L
      Src: /src/memcached/proxy_ustats.c:98,1
    - Dst: WSTAT_UL
      Src: /src/memcached/proxy_ustats.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 103
    functionName: mcplib_stat
    functionSourceFile: /src/memcached/proxy_ustats.c
    functionUses: 0
    functionsReached:
    - WSTAT_L
    - PROXY_GET_THR
    - WSTAT_UL
    - proxy_lua_error
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_stat(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushlightuserdata
      Src: /src/memcached/proxy_xxhash.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: mcplib_open_hash_xxhash
    functionSourceFile: /src/memcached/proxy_xxhash.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    linkageType: ''
    returnType: int
    signature: int mcplib_open_hash_xxhash(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: ROTL32
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL32(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BIG_CONSTANT
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG_CONSTANT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - r
    argTypes:
    - uint32_t
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: rotl32
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotl32 ( uint32_t x, int8_t r )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: ROTL32
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL32(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: BIG_CONSTANT
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG_CONSTANT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: getblock32
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCE_INLINE
    signature: FORCE_INLINE getblock32 ( const uint32_t * p, int i )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: uint32_t
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCE_INLINE
    signature: FORCE_INLINE uint32_t fmix32 ( uint32_t h )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getblock32
      Src: /src/memcached/murmur3_hash.c:88,1
    - Dst: ROTL32
      Src: /src/memcached/murmur3_hash.c:91,1
    - Dst: ROTL32
      Src: /src/memcached/murmur3_hash.c:95,1
    - Dst: ROTL32
      Src: /src/memcached/murmur3_hash.c:111,1
    - Dst: fmix32
      Src: /src/memcached/murmur3_hash.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - key
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: MurmurHash3_x86_32
    functionSourceFile: /src/memcached/murmur3_hash.c
    functionUses: 0
    functionsReached:
    - fmix32
    - getblock32
    - ROTL32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t MurmurHash3_x86_32 ( const void * key, size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_lua.c:28,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_lua.c:29,1
    - Dst: lua_rawset
      Src: /src/memcached/proxy_lua.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - key
    - klen
    - val
    - vlen
    - cookie
    argTypes:
    - char*
    - uint16_t
    - char*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 31
    functionName: _mcplib_append_stats
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_rawset
    linkageType: ''
    returnType: void
    signature: "void _mcplib_append_stats(const char *key, const uint16_t klen,\n
      \                 const char *val, const uint32_t vlen,\n                  const
      void *cookie)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_absindex
      Src: /src/memcached/proxy_lua.c:45,1
    - Dst: sscanf
      Src: /src/memcached/proxy_lua.c:52,1
    - Dst: sscanf
      Src: /src/memcached/proxy_lua.c:53,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_lua.c:55,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:56,1
    - Dst: lua_newtable
      Src: /src/memcached/proxy_lua.c:58,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:59,1
    - Dst: lua_rawseti
      Src: /src/memcached/proxy_lua.c:60,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:64,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_lua.c:65,1
    - Dst: lua_rawset
      Src: /src/memcached/proxy_lua.c:66,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:67,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_lua.c:70,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_lua.c:71,1
    - Dst: lua_rawset
      Src: /src/memcached/proxy_lua.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - key
    - klen
    - val
    - vlen
    - cookie
    argTypes:
    - char*
    - uint16_t
    - char*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 74
    functionName: _mcplib_append_section_stats
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_pop
    - lua_rawgeti
    - lua_pushvalue
    - lua_absindex
    - sscanf
    - lua_pushstring
    - lua_rawset
    - lua_rawseti
    - lua_newtable
    linkageType: ''
    returnType: void
    signature: "void _mcplib_append_section_stats(const char *key, const uint16_t
      klen,\n                  const char *val, const uint32_t vlen,\n                  const
      void *cookie)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/memcached/proxy_lua.c:78,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:79,1
    - Dst: lua_newtable
      Src: /src/memcached/proxy_lua.c:80,1
    - Dst: lua_isnil
      Src: /src/memcached/proxy_lua.c:85,1
    - Dst: server_stats
      Src: /src/memcached/proxy_lua.c:86,1
    - Dst: get_stats
      Src: /src/memcached/proxy_lua.c:87,1
    - Dst: luaL_checkstring
      Src: /src/memcached/proxy_lua.c:89,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:90,1
    - Dst: process_stat_settings
      Src: /src/memcached/proxy_lua.c:91,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:92,1
    - Dst: process_stats_conns
      Src: /src/memcached/proxy_lua.c:93,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:95,1
    - Dst: process_extstore_stats
      Src: /src/memcached/proxy_lua.c:96,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:98,1
    - Dst: process_proxy_stats
      Src: /src/memcached/proxy_lua.c:99,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:100,1
    - Dst: process_proxy_funcstats
      Src: /src/memcached/proxy_lua.c:101,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:102,1
    - Dst: process_proxy_bestats
      Src: /src/memcached/proxy_lua.c:103,1
    - Dst: get_stats
      Src: /src/memcached/proxy_lua.c:105,1
    - Dst: strlen
      Src: /src/memcached/proxy_lua.c:105,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:109,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 116
    functionName: mcplib_server_stats
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - process_extstore_stats
    - server_stats
    - process_proxy_bestats
    - process_proxy_funcstats
    - process_stats_conns
    - lua_isnil
    - lua_gettop
    - luaL_checkstring
    - process_stat_settings
    - strlen
    - proxy_lua_error
    - PROXY_GET_CTX
    - get_stats
    - lua_newtable
    - process_proxy_stats
    - strcmp
    linkageType: ''
    returnType: int
    signature: int mcplib_server_stats(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - secondsf
    argTypes:
    - lua_Number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: _mcplib_backend_get_waittime
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lua_Integer
    signature: lua_Integer _mcplib_backend_get_waittime(lua_Number secondsf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:137,1
    - Dst: luaL_checkstring
      Src: /src/memcached/proxy_lua.c:138,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:139,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_lua.c:142,1
    - Dst: memset
      Src: /src/memcached/proxy_lua.c:143,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:150,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:151,1
    - Dst: lua_setiuservalue
      Src: /src/memcached/proxy_lua.c:152,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:154,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:158,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:159,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:164,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:168,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:169,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_lua.c:170,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:172,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:177,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:180,1
    - Dst: clock_gettime
      Src: /src/memcached/proxy_lua.c:184,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_lua.c:189,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:194,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_lua.c:195,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:200,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:202,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:203,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 212
    functionName: mcplib_register_cron
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_pop
    - lua_setiuservalue
    - lua_rawgeti
    - lua_setfield
    - lua_pushvalue
    - lua_newuserdatauv
    - lua_tointeger
    - lua_touserdata
    - luaL_checkstring
    - clock_gettime
    - lua_getfield
    - PROXY_GET_CTX
    - proxy_lua_error
    - memset
    - lua_toboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_register_cron(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: mcplib_schedule_config_reload
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - PROXY_GET_CTX
    linkageType: ''
    returnType: int
    signature: int mcplib_schedule_config_reload(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/memcached/proxy_lua.c:225,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_lua.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: mcplib_time_real_millis
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: int mcplib_time_real_millis(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/memcached/proxy_lua.c:233,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_lua.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: mcplib_time_mono_millis
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: int mcplib_time_mono_millis(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:249,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:250,1
    - Dst: assert
      Src: /src/memcached/proxy_lua.c:259,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_lua.c:263,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_lua.c:264,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_lua.c:265,1
    - Dst: write
      Src: /src/memcached/proxy_lua.c:272,1
    - Dst: assert
      Src: /src/memcached/proxy_lua.c:273,1
    - Dst: write
      Src: /src/memcached/proxy_lua.c:276,1
    - Dst: assert
      Src: /src/memcached/proxy_lua.c:277,1
    - Dst: STAT_DECR
      Src: /src/memcached/proxy_lua.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts:
    - condition: (be->transferred)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/memcached/proxy_lua.c
    - condition: (1 == 0)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/memcached/proxy_lua.c
    - condition: (1 == 0)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/memcached/proxy_lua.c
    constantsTouched: []
    func_position:
      end: 285
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 285
    functionName: mcplib_backend_wrap_gc
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - write
    - luaL_checkudata
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAILQ_INSERT_TAIL
    - STAT_DECR
    - assert
    - PROXY_GET_CTX
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_wrap_gc(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_lua.c:288,1
    - Dst: free
      Src: /src/memcached/proxy_lua.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: mcplib_backend_gc
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - free
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_gc(lua_State *L)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:298,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:299,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:301,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:306,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:308,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:309,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:311,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:315,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:317,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:318,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:319,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:326,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:328,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_lua.c:330,1
    - Dst: malloc
      Src: /src/memcached/proxy_lua.c:331,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:332,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:335,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - L
    - be
    argTypes:
    - lua_State*
    - mcp_backend_label_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 346
    functionName: _mcplib_backend_log
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_pop
    - memcpy
    - luaL_checklstring
    - malloc
    - lua_toboolean
    - lua_getfield
    - proxy_lua_error
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int _mcplib_backend_log(lua_State *L, mcp_backend_label_t *be)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:361,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_lua.c:362,1
    - Dst: memset
      Src: /src/memcached/proxy_lua.c:363,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:365,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_lua.c:368,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_lua.c:369,1
    - Dst: lua_istable
      Src: /src/memcached/proxy_lua.c:371,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:375,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_lua.c:376,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:378,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:382,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_lua.c:383,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:385,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:390,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_lua.c:391,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:393,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:397,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:398,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:400,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:402,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:403,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:405,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:407,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:408,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:410,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:416,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:418,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:419,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:421,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:427,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:429,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:430,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_lua.c:435,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:437,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:440,1
    - Dst: _mcplib_backend_get_waittime
      Src: /src/memcached/proxy_lua.c:442,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:442,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:444,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:446,1
    - Dst: _mcplib_backend_get_waittime
      Src: /src/memcached/proxy_lua.c:448,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:448,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:450,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:452,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:453,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_lua.c:458,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:460,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:462,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:463,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_lua.c:468,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:470,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:472,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:473,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:476,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:478,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:479,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_lua.c:484,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:486,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:488,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:489,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:495,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:497,1
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:498,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_lua.c:499,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:502,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:504,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:505,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:507,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:510,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:516,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:518,1
    - Dst: lua_istable
      Src: /src/memcached/proxy_lua.c:519,1
    - Dst: _mcplib_backend_log
      Src: /src/memcached/proxy_lua.c:520,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:522,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:525,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_lua.c:527,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_lua.c:528,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_lua.c:529,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:533,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:538,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:543,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:547,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:549,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:551,1
    - Dst: lua_istable
      Src: /src/memcached/proxy_lua.c:554,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:555,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 141
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 559
    functionName: mcplib_backend
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - luaL_getmetatable
    - luaL_checkinteger
    - luaL_checklstring
    - lua_newuserdatauv
    - lua_tointeger
    - _mcplib_backend_get_waittime
    - _mcplib_backend_log
    - lua_toboolean
    - MICROSECONDS
    - lua_istable
    - lua_getfield
    - PROXY_GET_CTX
    - proxy_lua_error
    - luaL_checknumber
    - memset
    - lua_setmetatable
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcplib_backend(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettable
      Src: /src/memcached/proxy_lua.c:566,1
    - Dst: lua_upvalueindex
      Src: /src/memcached/proxy_lua.c:566,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:568,1
    - Dst: strncmp
      Src: /src/memcached/proxy_lua.c:569,1
    - Dst: strncmp
      Src: /src/memcached/proxy_lua.c:570,1
    - Dst: memcmp
      Src: /src/memcached/proxy_lua.c:572,1
    - Dst: memcmp
      Src: /src/memcached/proxy_lua.c:573,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:578,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - L
    - bel
    argTypes:
    - lua_State*
    - mcp_backend_label_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 585
    functionName: _mcplib_backend_checkcache
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - luaL_checkudata
    - strncmp
    - lua_upvalueindex
    - memcmp
    - lua_gettable
    linkageType: ''
    returnType: mcp_backend_wrap_t
    signature: mcp_backend_wrap_t *_mcplib_backend_checkcache(lua_State *L, mcp_backend_label_t
      *bel)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:589,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_lua.c:591,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_lua.c:592,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_lua.c:593,1
    - Dst: calloc
      Src: /src/memcached/proxy_lua.c:595,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:597,1
    - Dst: strncpy
      Src: /src/memcached/proxy_lua.c:603,1
    - Dst: strncpy
      Src: /src/memcached/proxy_lua.c:604,1
    - Dst: strncpy
      Src: /src/memcached/proxy_lua.c:605,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:606,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:607,1
    - Dst: strdup
      Src: /src/memcached/proxy_lua.c:612,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_lua.c:616,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:621,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_lua.c:622,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proxy_lua.c:623,1
    - Dst: malloc
      Src: /src/memcached/proxy_lua.c:629,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:631,1
    - Dst: malloc
      Src: /src/memcached/proxy_lua.c:636,1
    - Dst: mcmc_size
      Src: /src/memcached/proxy_lua.c:636,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:638,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:648,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:652,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:659,1
    - Dst: mcp_tls_backend_init
      Src: /src/memcached/proxy_lua.c:663,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_lua.c:667,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_lua.c:668,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_lua.c:669,1
    - Dst: write
      Src: /src/memcached/proxy_lua.c:676,1
    - Dst: assert
      Src: /src/memcached/proxy_lua.c:677,1
    - Dst: write
      Src: /src/memcached/proxy_lua.c:680,1
    - Dst: assert
      Src: /src/memcached/proxy_lua.c:681,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:685,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:687,1
    - Dst: lua_settable
      Src: /src/memcached/proxy_lua.c:689,1
    - Dst: lua_upvalueindex
      Src: /src/memcached/proxy_lua.c:689,1
    - Dst: STAT_INCR
      Src: /src/memcached/proxy_lua.c:692,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 62
    argCount: 3
    argNames:
    - L
    - bel
    - e
    argTypes:
    - lua_State*
    - mcp_backend_label_t*
    - proxy_event_thread_t*
    assertStmts:
    - condition: (1 == 0)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/memcached/proxy_lua.c
    - condition: (1 == 0)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/memcached/proxy_lua.c
    constantsTouched: []
    func_position:
      end: 695
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 695
    functionName: _mcplib_make_backendconn
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_upvalueindex
    - STAILQ_INSERT_TAIL
    - proxy_lua_error
    - mcp_tls_backend_init
    - STAT_INCR
    - STAILQ_INIT
    - STAT_UL
    - luaL_getmetatable
    - lua_newuserdatauv
    - assert
    - PROXY_GET_CTX
    - STAT_L
    - write
    - lua_pushvalue
    - malloc
    - pthread_mutex_lock
    - lua_settable
    - strdup
    - lua_setmetatable
    - calloc
    - memcpy
    - mcmc_size
    - pthread_mutex_unlock
    - strncpy
    linkageType: ''
    returnType: mcp_backend_wrap_t
    signature: "mcp_backend_wrap_t *_mcplib_make_backendconn(lua_State *L, mcp_backend_label_t
      *bel,\n        proxy_event_thread_t *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:698,1
    - Dst: mcp_gobj_finalize
      Src: /src/memcached/proxy_lua.c:700,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_lua.c:702,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_lua.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 711
    functionName: mcplib_pool_gc
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - mcp_gobj_finalize
    - luaL_unref
    linkageType: ''
    returnType: int
    signature: int mcplib_pool_gc(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:724,1
    - Dst: strstr
      Src: /src/memcached/proxy_lua.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - conf
    - key
    - klen
    - newlen
    argTypes:
    - char*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 740
    functionName: mcp_key_hash_filter_stop
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - strstr
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *mcp_key_hash_filter_stop(const char *conf, const char *key, size_t
      klen, size_t *newlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/memcached/proxy_lua.c:748,1
    - Dst: memchr
      Src: /src/memcached/proxy_lua.c:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - conf
    - key
    - klen
    - newlen
    argTypes:
    - char*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 763
    functionName: mcp_key_hash_filter_tag
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *mcp_key_hash_filter_tag(const char *conf, const char *key, size_t
      klen, size_t *newlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:766,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:767,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:768,1
    - Dst: lua_createtable
      Src: /src/memcached/proxy_lua.c:773,1
    - Dst: lua_createtable
      Src: /src/memcached/proxy_lua.c:776,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_lua.c:780,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:781,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:784,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:785,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:786,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:787,1
    - Dst: lua_rawseti
      Src: /src/memcached/proxy_lua.c:790,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:796,1
    - Dst: lua_pcall
      Src: /src/memcached/proxy_lua.c:800,1
    - Dst: lua_error
      Src: /src/memcached/proxy_lua.c:803,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:811,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:812,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_lua.c:813,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:814,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:815,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_lua.c:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - L
    - p
    argTypes:
    - lua_State*
    - mcp_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 819
    functionName: _mcplib_pool_dist
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_error
    - lua_setfield
    - lua_pop
    - lua_pushvalue
    - lua_touserdata
    - lua_pushstring
    - lua_getfield
    - luaL_ref
    - lua_pushinteger
    - lua_rawseti
    - lua_pcall
    - proxy_lua_error
    - lua_createtable
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _mcplib_pool_dist(lua_State *L, mcp_pool_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_geti
      Src: /src/memcached/proxy_lua.c:827,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:830,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:836,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:840,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:843,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_lua.c:844,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:845,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_lua.c:848,1
    - Dst: lua_concat
      Src: /src/memcached/proxy_lua.c:849,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:851,1
    - Dst: _mcplib_backend_checkcache
      Src: /src/memcached/proxy_lua.c:852,1
    - Dst: _mcplib_make_backendconn
      Src: /src/memcached/proxy_lua.c:854,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_lua.c:864,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:865,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - L
    - p
    - offset
    - t
    argTypes:
    - lua_State*
    - mcp_pool_t*
    - int
    - proxy_event_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 868
    functionName: _mcplib_pool_make_be_loop
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_pop
    - lua_pushvalue
    - luaL_checkudata
    - _mcplib_make_backendconn
    - lua_pushstring
    - _mcplib_backend_checkcache
    - luaL_ref
    - lua_pushinteger
    - lua_concat
    - lua_geti
    linkageType: ''
    returnType: void
    signature: void _mcplib_pool_make_be_loop(lua_State *L, mcp_pool_t *p, int offset,
      proxy_event_thread_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:873,1
    - Dst: _mcplib_pool_make_be_loop
      Src: /src/memcached/proxy_lua.c:874,1
    - Dst: get_worker_thread
      Src: /src/memcached/proxy_lua.c:878,1
    - Dst: _mcplib_pool_make_be_loop
      Src: /src/memcached/proxy_lua.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - L
    - p
    argTypes:
    - lua_State*
    - mcp_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 882
    functionName: _mcplib_pool_make_be
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - _mcplib_pool_make_be_loop
    - get_worker_thread
    - PROXY_GET_CTX
    linkageType: ''
    returnType: void
    signature: void _mcplib_pool_make_be(lua_State *L, mcp_pool_t *p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:886,1
    - Dst: lua_gettop
      Src: /src/memcached/proxy_lua.c:887,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:888,1
    - Dst: luaL_len
      Src: /src/memcached/proxy_lua.c:889,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_lua.c:893,1
    - Dst: memset
      Src: /src/memcached/proxy_lua.c:895,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proxy_lua.c:901,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:902,1
    - Dst: luaL_setmetatable
      Src: /src/memcached/proxy_lua.c:904,1
    - Dst: lua_type
      Src: /src/memcached/proxy_lua.c:907,1
    - Dst: _mcplib_pool_make_be
      Src: /src/memcached/proxy_lua.c:909,1
    - Dst: lua_getglobal
      Src: /src/memcached/proxy_lua.c:910,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:912,1
    - Dst: _mcplib_pool_dist
      Src: /src/memcached/proxy_lua.c:913,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:914,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:916,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:918,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:924,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:926,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:927,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:928,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:934,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:936,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:939,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:940,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_lua.c:942,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:943,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:945,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:947,1
    - Dst: _mcplib_pool_make_be
      Src: /src/memcached/proxy_lua.c:949,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:952,1
    - Dst: _mcplib_pool_dist
      Src: /src/memcached/proxy_lua.c:954,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:955,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:957,1
    - Dst: lua_getglobal
      Src: /src/memcached/proxy_lua.c:960,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:962,1
    - Dst: _mcplib_pool_dist
      Src: /src/memcached/proxy_lua.c:963,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:964,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:966,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:968,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:971,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:972,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_lua.c:973,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:974,1
    - Dst: strcmp
      Src: /src/memcached/proxy_lua.c:976,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_lua.c:979,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:982,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:984,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_lua.c:986,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_lua.c:988,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:991,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:994,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:996,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:998,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:1001,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:1002,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_lua.c:1003,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1005,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1007,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_lua.c:1010,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:1011,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_lua.c:1013,1
    - Dst: XXH3_64bits
      Src: /src/memcached/proxy_lua.c:1017,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1019,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1021,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1025,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 99
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 885
    functionDepth: 4
    functionLinenumber: 885
    functionLinenumberEnd: 1029
    functionName: mcplib_pool
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_type
    - XXH3_64bits
    - luaL_setmetatable
    - lua_tostring
    - proxy_lua_error
    - lua_pop
    - lua_newuserdatauv
    - lua_getglobal
    - lua_getfield
    - PROXY_GET_CTX
    - lua_tolstring
    - luaL_len
    - proxy_lua_ferror
    - _mcplib_pool_make_be
    - pthread_mutex_init
    - memset
    - memcpy
    - lua_toboolean
    - luaL_checktype
    - lua_touserdata
    - lua_gettop
    - _mcplib_pool_dist
    - strcmp
    linkageType: ''
    returnType: int
    signature: int mcplib_pool(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:1032,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_lua.c:1034,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_lua.c:1038,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_lua.c:1039,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/proxy_lua.c:1040,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_lua.c:1041,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_lua.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1046
    functionName: mcplib_pool_proxy_gc
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - luaL_checkudata
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: int mcplib_pool_proxy_gc(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mcp_pool_t*::key_filter
      Src: /src/memcached/proxy_lua.c:1051,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_lua.c:1052,1
    - Dst: mcp_pool_t*::key_hasher
      Src: /src/memcached/proxy_lua.c:1054,1
    - Dst: mcp_pool_t*::phc::selector_func
      Src: /src/memcached/proxy_lua.c:1055,1
    - Dst: assert
      Src: /src/memcached/proxy_lua.c:1057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pp
    - key
    - len
    argTypes:
    - mcp_pool_proxy_t*
    - char*
    - size_t
    assertStmts:
    - condition: (p->phc.ctx != NULL)
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/memcached/proxy_lua.c
    constantsTouched: []
    func_position:
      end: 1063
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1063
    functionName: mcplib_pool_proxy_call_helper
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - mcp_pool_t*::key_filter
    - assert
    - P_DEBUG
    - mcp_pool_t*::phc::selector_func
    - mcp_pool_t*::key_hasher
    linkageType: ''
    returnType: mcp_backend_t
    signature: mcp_backend_t *mcplib_pool_proxy_call_helper(mcp_pool_proxy_t *pp,
      const char *key, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:1066,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:1067,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1068,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1070,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1075
    functionName: mcplib_backend_use_iothread
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - luaL_checktype
    - PROXY_GET_CTX
    - STAT_L
    - lua_toboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_use_iothread(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:1078,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:1079,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1080,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1083,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1086,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1091
    functionName: mcplib_backend_use_tls
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - luaL_checktype
    - PROXY_GET_CTX
    - STAT_L
    - proxy_lua_error
    - lua_toboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_use_tls(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1096,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1098,1
    - Dst: mcp_tls_init
      Src: /src/memcached/proxy_lua.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1103
    functionName: mcplib_init_tls
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - proxy_lua_error
    - PROXY_GET_CTX
    - mcp_tls_init
    linkageType: ''
    returnType: int
    signature: int mcplib_init_tls(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_lua.c:1106,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:1107,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1108,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1110,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1115
    functionName: mcplib_tcp_keepalive
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - luaL_checktype
    - PROXY_GET_CTX
    - STAT_L
    - lua_toboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_tcp_keepalive(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1118,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1119,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1122,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1126,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1131
    functionName: mcplib_backend_failure_limit
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - PROXY_GET_CTX
    - STAT_L
    - proxy_lua_error
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_failure_limit(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1134,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1135,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1138,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1142,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1147
    functionName: mcplib_backend_depth_limit
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - PROXY_GET_CTX
    - STAT_L
    - proxy_lua_error
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_depth_limit(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:1150,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1153,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1155,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_lua.c:1157,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1161
    functionName: mcplib_backend_connect_timeout
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - MICROSECONDS
    - PROXY_GET_CTX
    - STAT_L
    - luaL_checknumber
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_connect_timeout(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:1164,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1165,1
    - Dst: _mcplib_backend_get_waittime
      Src: /src/memcached/proxy_lua.c:1166,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1168,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1174
    functionName: mcplib_backend_retry_waittime
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - _mcplib_backend_get_waittime
    - PROXY_GET_CTX
    - STAT_L
    - luaL_checknumber
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_retry_waittime(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcplib_backend_retry_waittime
      Src: /src/memcached/proxy_lua.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1179
    functionName: mcplib_backend_retry_timeout
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - mcplib_backend_retry_waittime
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_retry_timeout(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:1182,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1185,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1187,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_lua.c:1189,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1193
    functionName: mcplib_backend_read_timeout
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - MICROSECONDS
    - PROXY_GET_CTX
    - STAT_L
    - luaL_checknumber
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_read_timeout(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:1196,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1199,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1201,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_lua.c:1203,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1207
    functionName: mcplib_backend_flap_time
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - MICROSECONDS
    - PROXY_GET_CTX
    - STAT_L
    - luaL_checknumber
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_flap_time(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:1210,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1211,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1216,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1221
    functionName: mcplib_backend_flap_backoff_ramp
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - luaL_checknumber
    - PROXY_GET_CTX
    - STAT_L
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_flap_backoff_ramp(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:1224,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_lua.c:1225,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1226,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1228,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1233
    functionName: mcplib_backend_flap_backoff_max
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - PROXY_GET_CTX
    - STAT_L
    - luaL_checknumber
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int mcplib_backend_flap_backoff_max(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checknumber
      Src: /src/memcached/proxy_lua.c:1236,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1237,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1242,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1247
    functionName: mcplib_luagc_ratio
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - luaL_checknumber
    - PROXY_GET_CTX
    - STAT_L
    linkageType: ''
    returnType: int
    signature: int mcplib_luagc_ratio(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1250,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1251,1
    - Dst: fprintf
      Src: /src/memcached/proxy_lua.c:1257,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1262,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1266
    functionName: mcplib_stat_limit
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - fprintf
    - PROXY_GET_CTX
    - STAT_L
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_stat_limit(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1269,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1270,1
    - Dst: STAT_L
      Src: /src/memcached/proxy_lua.c:1283,1
    - Dst: STAT_UL
      Src: /src/memcached/proxy_lua.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1288
    functionName: mcplib_active_req_limit
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - STAT_UL
    - PROXY_GET_CTX
    - STAT_L
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_active_req_limit(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proxy_lua.c:1292,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1308
    functionName: mcplib_buffer_memory_limit
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - PROXY_GET_CTX
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_buffer_memory_limit(lua_State *L)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_lua.c:1314,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1316,1
    - Dst: lua_isfunction
      Src: /src/memcached/proxy_lua.c:1333,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1335,1
    - Dst: mcplib_funcgenbare_new
      Src: /src/memcached/proxy_lua.c:1336,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:1337,1
    - Dst: lua_replace
      Src: /src/memcached/proxy_lua.c:1338,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1341,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_lua.c:1342,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1345,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1350,1
    - Dst: lua_isstring
      Src: /src/memcached/proxy_lua.c:1358,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_lua.c:1360,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1362,1
    - Dst: memcpy
      Src: /src/memcached/proxy_lua.c:1365,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1375,1
    - Dst: calloc
      Src: /src/memcached/proxy_lua.c:1383,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1385,1
    - Dst: realloc
      Src: /src/memcached/proxy_lua.c:1403,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_lua.c:1405,1
    - Dst: memset
      Src: /src/memcached/proxy_lua.c:1409,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_lua.c:1421,1
    - Dst: mcp_funcgen_dereference
      Src: /src/memcached/proxy_lua.c:1422,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1425,1
    - Dst: mcp_funcgen_reference
      Src: /src/memcached/proxy_lua.c:1426,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_lua.c:1427,1
    - Dst: assert
      Src: /src/memcached/proxy_lua.c:1429,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 80
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts:
    - condition: (href->lua_ref != 0)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/memcached/proxy_lua.c
    constantsTouched: []
    func_position:
      end: 1434
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1434
    functionName: mcplib_attach
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - luaL_ref
    - proxy_lua_error
    - mcp_funcgen_dereference
    - lua_isfunction
    - lua_pop
    - assert
    - mcp_funcgen_reference
    - lua_tolstring
    - luaL_checkinteger
    - PROXY_GET_THR
    - lua_pushvalue
    - luaL_testudata
    - lua_replace
    - memset
    - calloc
    - memcpy
    - luaL_unref
    - mcplib_funcgenbare_new
    - lua_isstring
    - realloc
    linkageType: ''
    returnType: int
    signature: int mcplib_attach(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/memcached/proxy_lua.c:1440,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_lua.c:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1444
    functionName: mcplib_ct_log
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - LOGGER_LOG
    - luaL_checkstring
    linkageType: ''
    returnType: int
    signature: int mcplib_ct_log(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_lua.c:1447,1
    - Dst: luaL_checkstring
      Src: /src/memcached/proxy_lua.c:1448,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_lua.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1451
    functionName: mcplib_log
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - PROXY_GET_THR
    - LOGGER_LOG
    - luaL_checkstring
    linkageType: ''
    returnType: int
    signature: int mcplib_log(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_lua.c:1455,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:1469,1
    - Dst: lua_type
      Src: /src/memcached/proxy_lua.c:1470,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:1472,1
    - Dst: luaL_optlstring
      Src: /src/memcached/proxy_lua.c:1486,1
    - Dst: luaL_optinteger
      Src: /src/memcached/proxy_lua.c:1487,1
    - Dst: logger_log
      Src: /src/memcached/proxy_lua.c:1497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1500
    functionName: mcplib_log_req
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - PROXY_GET_THR
    - luaL_checkudata
    - lua_type
    - logger_log
    - luaL_optlstring
    - luaL_optinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_log_req(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1504
    functionName: _mcp_rotl
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _mcp_rotl(const uint32_t x, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mcp_rotl
      Src: /src/memcached/proxy_lua.c:1508,1
    - Dst: _mcp_rotl
      Src: /src/memcached/proxy_lua.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1522
    functionName: _mcp_nextrand
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - _mcp_rotl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _mcp_nextrand(uint32_t *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _mcp_nextrand
      Src: /src/memcached/proxy_lua.c:1546,1
    - Dst: strlen
      Src: /src/memcached/proxy_lua.c:1559,1
    - Dst: logger_log
      Src: /src/memcached/proxy_lua.c:1562,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - rq
    - rs
    - flag
    - cfd
    argTypes:
    - mcp_request_t*
    - mcp_resp_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1524
    functionDepth: 2
    functionLinenumber: 1524
    functionLinenumberEnd: 1564
    functionName: mcplib_rqu_log
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - logger_log
    - strlen
    - _mcp_nextrand
    linkageType: ''
    returnType: void
    signature: void mcplib_rqu_log(mcp_request_t *rq, mcp_resp_t *rs, int flag, int
      cfd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_lua.c:1568,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1582,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_lua.c:1583,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_lua.c:1584,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:1585,1
    - Dst: lua_type
      Src: /src/memcached/proxy_lua.c:1586,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_lua.c:1588,1
    - Dst: luaL_optlstring
      Src: /src/memcached/proxy_lua.c:1602,1
    - Dst: luaL_optinteger
      Src: /src/memcached/proxy_lua.c:1603,1
    - Dst: _mcp_nextrand
      Src: /src/memcached/proxy_lua.c:1613,1
    - Dst: logger_log
      Src: /src/memcached/proxy_lua.c:1628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1567
    functionDepth: 2
    functionLinenumber: 1567
    functionLinenumberEnd: 1632
    functionName: mcplib_log_reqsample
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - PROXY_GET_THR
    - luaL_checkinteger
    - _mcp_nextrand
    - luaL_checkudata
    - lua_type
    - luaL_optinteger
    - logger_log
    - luaL_optlstring
    - lua_toboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_log_reqsample(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1647,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1648,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1649,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1650,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1651,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1652,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1653,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1654,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1655,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1656,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1657,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1658,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1659,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1660,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1661,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1662,1
    - Dst: X
      Src: /src/memcached/proxy_lua.c:1663,1
    - Dst: Y
      Src: /src/memcached/proxy_lua.c:1664,1
    - Dst: Y
      Src: /src/memcached/proxy_lua.c:1665,1
    - Dst: Y
      Src: /src/memcached/proxy_lua.c:1666,1
    - Dst: Y
      Src: /src/memcached/proxy_lua.c:1667,1
    - Dst: Y
      Src: /src/memcached/proxy_lua.c:1668,1
    - Dst: Y
      Src: /src/memcached/proxy_lua.c:1669,1
    - Dst: Y
      Src: /src/memcached/proxy_lua.c:1670,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_lua.c:1675,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1677
    functionName: proxy_register_defines
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - Y
    - lua_setfield
    - lua_pushboolean
    - X
    linkageType: ''
    returnType: void
    signature: void proxy_register_defines(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1643
    functionName: X
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1646
    functionName: Y
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Y(x, l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_absindex
      Src: /src/memcached/proxy_lua.c:1681,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_lua.c:1684,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1685,1
    - Dst: strdup
      Src: /src/memcached/proxy_lua.c:1689,1
    - Dst: strchr
      Src: /src/memcached/proxy_lua.c:1690,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:1692,1
    - Dst: lua_newtable
      Src: /src/memcached/proxy_lua.c:1695,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_lua.c:1696,1
    - Dst: strtok_r
      Src: /src/memcached/proxy_lua.c:1698,1
    - Dst: strtok_r
      Src: /src/memcached/proxy_lua.c:1700,1
    - Dst: strtok_r
      Src: /src/memcached/proxy_lua.c:1702,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:1703,1
    - Dst: strtok_r
      Src: /src/memcached/proxy_lua.c:1704,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_lua.c:1706,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:1708,1
    - Dst: lua_settable
      Src: /src/memcached/proxy_lua.c:1710,1
    - Dst: free
      Src: /src/memcached/proxy_lua.c:1713,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1715
    functionName: proxy_register_startarg
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - free
    - lua_setfield
    - lua_absindex
    - lua_pushstring
    - lua_newtable
    - lua_settable
    - lua_pushboolean
    - strdup
    - strchr
    - strtok_r
    linkageType: ''
    returnType: void
    signature: void proxy_register_startarg(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getextraspace
      Src: /src/memcached/proxy_lua.c:1885,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1890,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1891,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1892,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1893,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1894,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1896,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1897,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1898,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1899,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1900,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1902,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1903,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1904,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1905,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1906,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1908,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1909,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1910,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1911,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1912,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1914,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1915,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1916,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1917,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1918,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1920,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1921,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1922,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1923,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1924,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1926,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1927,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1928,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1929,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1930,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1932,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1933,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1934,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1935,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1936,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1938,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1939,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1940,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1941,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1942,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1945,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1946,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1949,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1950,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1953,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1954,1
    - Dst: luaL_newlibtable
      Src: /src/memcached/proxy_lua.c:1956,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1962,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1963,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1964,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1965,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1966,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1968,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1969,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1970,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1971,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1972,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1974,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1975,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1976,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1977,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1978,1
    - Dst: luaL_newmetatable
      Src: /src/memcached/proxy_lua.c:1980,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_lua.c:1981,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1982,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:1983,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_lua.c:1984,1
    - Dst: luaL_newlibtable
      Src: /src/memcached/proxy_lua.c:1986,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_lua.c:1990,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_lua.c:1991,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_lua.c:1992,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:1993,1
    - Dst: proxy_register_defines
      Src: /src/memcached/proxy_lua.c:2001,1
    - Dst: mcplib_open_hash_xxhash
      Src: /src/memcached/proxy_lua.c:2003,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:2004,1
    - Dst: mcplib_open_dist_jump_hash
      Src: /src/memcached/proxy_lua.c:2008,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:2009,1
    - Dst: mcplib_open_dist_ring_hash
      Src: /src/memcached/proxy_lua.c:2010,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:2011,1
    - Dst: lua_newtable
      Src: /src/memcached/proxy_lua.c:2014,1
    - Dst: lua_newtable
      Src: /src/memcached/proxy_lua.c:2015,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_lua.c:2016,1
    - Dst: lua_setfield
      Src: /src/memcached/proxy_lua.c:2017,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_lua.c:2018,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:2021,1
    - Dst: luaL_setfuncs
      Src: /src/memcached/proxy_lua.c:2023,1
    - Dst: proxy_register_startarg
      Src: /src/memcached/proxy_lua.c:2027,1
    - Dst: lua_setglobal
      Src: /src/memcached/proxy_lua.c:2029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 103
    argCount: 3
    argNames:
    - ctx
    - t
    - state
    argTypes:
    - void*
    - LIBEVENT_THREAD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 1718
    functionDepth: 2
    functionLinenumber: 1718
    functionLinenumberEnd: 2031
    functionName: proxy_register_libs
    functionSourceFile: /src/memcached/proxy_lua.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_setfield
    - luaL_getmetatable
    - luaL_newmetatable
    - lua_pushvalue
    - lua_newuserdatauv
    - lua_getextraspace
    - mcplib_open_hash_xxhash
    - luaL_setfuncs
    - mcplib_open_dist_jump_hash
    - lua_pushstring
    - proxy_register_startarg
    - luaL_newlibtable
    - lua_newtable
    - mcplib_open_dist_ring_hash
    - proxy_register_defines
    - lua_setglobal
    - lua_setmetatable
    linkageType: ''
    returnType: int
    signature: int proxy_register_libs(void *ctx, LIBEVENT_THREAD *t, void *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mut_step_c(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mut_step_i(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mut_step_r(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mut_step_n(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: res_buf
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_buf(r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:138,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_mutator.c:139,1
    - Dst: lua_tointegerx
      Src: /src/memcached/proxy_mutator.c:141,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:143,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:146,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:149,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - L
    - tidx
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: _mut_check_idx
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_tointegerx
    - luaL_checktype
    - lua_pop
    - proxy_lua_ferror
    - lua_getfield
    linkageType: ''
    returnType: void
    signature: void _mut_check_idx(lua_State *L, int tidx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:157,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:158,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:160,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - L
    - tidx
    - n
    argTypes:
    - lua_State*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: _mut_check_strlen
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - proxy_lua_ferror
    - lua_tolstring
    linkageType: ''
    returnType: size_t
    signature: size_t _mut_check_strlen(lua_State *L, int tidx, const char *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:168,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:170,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:172,1
    - Dst: mcp_is_flag_invalid
      Src: /src/memcached/proxy_mutator.c:174,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:175,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:178,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - L
    - tidx
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: _mut_check_flag
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - proxy_lua_ferror
    - lua_getfield
    - mcp_is_flag_invalid
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void _mut_check_flag(lua_State *L, int tidx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:184,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_mutator.c:185,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - L
    - tidx
    - c
    argTypes:
    - lua_State*
    - int
    - struct mcp_mut_flag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: _mut_init_flag
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_tostring
    - lua_getfield
    - lua_pop
    linkageType: ''
    returnType: void
    signature: void _mut_init_flag(lua_State *L, int tidx, struct mcp_mut_flag *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getmetatable
      Src: /src/memcached/proxy_mutator.c:196,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_mutator.c:197,1
    - Dst: lua_rawequal
      Src: /src/memcached/proxy_mutator.c:198,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:199,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_mutator.c:200,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_mutator.c:203,1
    - Dst: lua_rawequal
      Src: /src/memcached/proxy_mutator.c:204,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_mutator.c:205,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - L
    - idx
    - srq
    - srs
    argTypes:
    - lua_State*
    - unsigned int
    - mcp_request_t**
    - mcp_resp_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: _mut_checkudata
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getiuservalue
    - lua_pop
    - lua_touserdata
    - lua_rawequal
    - lua_getmetatable
    linkageType: ''
    returnType: void
    signature: void _mut_checkudata(lua_State *L, unsigned int idx, mcp_request_t
      **srq, mcp_resp_t **srs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:217,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:218,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:222,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:225,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - proxy_lua_ferror
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_c(cmdset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:237,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:238,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:242,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tolstring
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_i(cmdset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mut_step_n(cmdset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(cmdset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mut_check_idx
      Src: /src/memcached/proxy_mutator.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - _mut_check_idx
    linkageType: ''
    returnType: void
    signature: void mut_step_c(cmdcopy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:273,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_mutator.c:274,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void mut_step_i(cmdcopy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_mutator.c:287,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:289,1
    - Dst: _mut_checkudata
      Src: /src/memcached/proxy_mutator.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 316
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_type
    - _mut_checkudata
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_n(cmdcopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(cmdcopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mut_check_idx
      Src: /src/memcached/proxy_mutator.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - _mut_check_idx
    linkageType: ''
    returnType: void
    signature: void mut_step_c(keycopy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:334,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_mutator.c:335,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void mut_step_i(keycopy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_mutator.c:347,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:349,1
    - Dst: _mut_checkudata
      Src: /src/memcached/proxy_mutator.c:352,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_mutator.c:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 368
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_type
    - MCP_PARSER_KEY
    - _mut_checkudata
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_n(keycopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(keycopy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:379,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:380,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:382,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:385,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 390
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - proxy_lua_ferror
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_c(keyset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:398,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:399,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:403,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tolstring
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_i(keyset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mut_step_n(keyset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(keyset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mut_step_c(resnull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:433,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_mutator.c:434,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void mut_step_i(resnull)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_mutator.c:445,1
    - Dst: lua_getmetatable
      Src: /src/memcached/proxy_mutator.c:449,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_mutator.c:450,1
    - Dst: lua_rawequal
      Src: /src/memcached/proxy_mutator.c:451,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:452,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_mutator.c:455,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:456,1
    - Dst: strlen
      Src: /src/memcached/proxy_mutator.c:493,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 496
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getiuservalue
    - lua_pop
    - lua_touserdata
    - lua_rawequal
    - lua_type
    - strlen
    - lua_getmetatable
    linkageType: ''
    returnType: void
    signature: void mut_step_n(resnull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(resnull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mut_check_strlen
      Src: /src/memcached/proxy_mutator.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - _mut_check_strlen
    linkageType: ''
    returnType: void
    signature: void mut_step_c(rescodeset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:514,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:515,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:519,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 525
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tolstring
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_i(rescodeset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mut_step_n(rescodeset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(rescodeset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mut_check_idx
      Src: /src/memcached/proxy_mutator.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - _mut_check_idx
    linkageType: ''
    returnType: void
    signature: void mut_step_c(rescodecopy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:550,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_mutator.c:551,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 556
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void mut_step_i(rescodecopy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_mutator.c:564,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:566,1
    - Dst: _mut_checkudata
      Src: /src/memcached/proxy_mutator.c:569,1
    - Dst: mcmc_tokenize_res
      Src: /src/memcached/proxy_mutator.c:574,1
    - Dst: res_buf
      Src: /src/memcached/proxy_mutator.c:574,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proxy_mutator.c:580,1
    - Dst: res_buf
      Src: /src/memcached/proxy_mutator.c:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 595
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get
    - mcmc_tokenize_res
    - lua_type
    - _mut_checkudata
    - res_buf
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_n(rescodecopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(rescodecopy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:610,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_mutator.c:611,1
    - Dst: strcmp
      Src: /src/memcached/proxy_mutator.c:613,1
    - Dst: strcmp
      Src: /src/memcached/proxy_mutator.c:615,1
    - Dst: strcmp
      Src: /src/memcached/proxy_mutator.c:617,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:620,1
    - Dst: strlen
      Src: /src/memcached/proxy_mutator.c:623,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:625,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:627,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:629,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:631,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:633,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 640
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - proxy_lua_ferror
    - strlen
    - lua_getfield
    - lua_tostring
    - lua_tolstring
    - strcmp
    linkageType: ''
    returnType: void
    signature: void mut_step_c(reserr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:649,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_mutator.c:650,1
    - Dst: strcmp
      Src: /src/memcached/proxy_mutator.c:651,1
    - Dst: strcmp
      Src: /src/memcached/proxy_mutator.c:653,1
    - Dst: strcmp
      Src: /src/memcached/proxy_mutator.c:655,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:659,1
    - Dst: strlen
      Src: /src/memcached/proxy_mutator.c:664,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:665,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:673,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:675,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:677,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:679,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:681,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 689
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    - lua_pop
    - proxy_lua_ferror
    - strlen
    - lua_getfield
    - lua_tostring
    - lua_tolstring
    - strcmp
    linkageType: ''
    returnType: void
    signature: void mut_step_i(reserr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mut_step_n(reserr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 707
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(reserr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mut_check_flag
      Src: /src/memcached/proxy_mutator.c:711,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:714,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:717,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:719,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 724
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - proxy_lua_ferror
    - lua_getfield
    - _mut_check_flag
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_c(flagset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mut_init_flag
      Src: /src/memcached/proxy_mutator.c:731,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:732,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:733,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:737,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 743
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - _mut_init_flag
    - lua_getfield
    - lua_tolstring
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_i(flagset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mut_step_n(flagset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 766
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(flagset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mut_check_flag
      Src: /src/memcached/proxy_mutator.c:769,1
    - Dst: _mut_check_idx
      Src: /src/memcached/proxy_mutator.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 772
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - _mut_check_idx
    - _mut_check_flag
    linkageType: ''
    returnType: void
    signature: void mut_step_c(flagcopy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mut_init_flag
      Src: /src/memcached/proxy_mutator.c:779,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:781,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_mutator.c:782,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 787
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    - _mut_init_flag
    linkageType: ''
    returnType: void
    signature: void mut_step_i(flagcopy)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_mutator.c:797,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_mutator.c:804,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:811,1
    - Dst: _mut_checkudata
      Src: /src/memcached/proxy_mutator.c:819,1
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_mutator.c:826,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_mutator.c:827,1
    - Dst: mcmc_tokenize_res
      Src: /src/memcached/proxy_mutator.c:839,1
    - Dst: res_buf
      Src: /src/memcached/proxy_mutator.c:839,1
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_mutator.c:840,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_mutator.c:847,1
    - Dst: res_buf
      Src: /src/memcached/proxy_mutator.c:847,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 863
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - mcmc_tokenize_res
    - mcmc_token_has_flag_bit
    - mcmc_token_get_flag
    - lua_type
    - _mut_checkudata
    - res_buf
    - lua_tolstring
    - lua_toboolean
    linkageType: ''
    returnType: void
    signature: void mut_step_n(flagcopy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 878
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(flagcopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 886
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mut_step_c(flagcopyall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:891,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_mutator.c:892,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 897
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void mut_step_i(flagcopyall)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_mutator.c:905,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:908,1
    - Dst: _mut_checkudata
      Src: /src/memcached/proxy_mutator.c:912,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 940
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_type
    - _mut_checkudata
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_n(flagcopyall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 947
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mut_step_r(flagcopyall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mut_check_idx
      Src: /src/memcached/proxy_mutator.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: mut_step_c
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - _mut_check_idx
    linkageType: ''
    returnType: void
    signature: void mut_step_c(valcopy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:959,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_mutator.c:960,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 965
    functionName: mut_step_i
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void mut_step_i(valcopy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/memcached/proxy_mutator.c:974,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_mutator.c:976,1
    - Dst: _mut_checkudata
      Src: /src/memcached/proxy_mutator.c:982,1
    - Dst: itoa_u64
      Src: /src/memcached/proxy_mutator.c:1006,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 967
    functionDepth: 4
    functionLinenumber: 967
    functionLinenumberEnd: 1009
    functionName: mut_step_n
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_type
    - itoa_u64
    - _mut_checkudata
    - lua_tolstring
    linkageType: ''
    returnType: void
    signature: void mut_step_n(valcopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: itoa_u64
      Src: /src/memcached/proxy_mutator.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1013
    functionDepth: 4
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    functionName: mut_step_r
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - itoa_u64
    linkageType: ''
    returnType: void
    signature: void mut_step_r(valcopy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/memcached/proxy_mutator.c:1039,1
    - Dst: strcmp
      Src: /src/memcached/proxy_mutator.c:1042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1047
    functionName: mcp_mutator_steptype
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - strcmp
    - luaL_checkstring
    linkageType: ''
    returnType: enum mcp_mut_steptype
    signature: enum mcp_mut_steptype mcp_mutator_steptype(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/memcached/proxy_mutator.c:1050,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_mutator.c:1056,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:1057,1
    - Dst: mcp_mutator_steptype
      Src: /src/memcached/proxy_mutator.c:1058,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:1061,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_mutator.c:1064,1
    - Dst: struct mcp_mut_entry*::c
      Src: /src/memcached/proxy_mutator.c:1066,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:1068,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_mutator.c:1075,1
    - Dst: memset
      Src: /src/memcached/proxy_mutator.c:1076,1
    - Dst: malloc
      Src: /src/memcached/proxy_mutator.c:1078,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1080,1
    - Dst: luaL_setmetatable
      Src: /src/memcached/proxy_mutator.c:1082,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_mutator.c:1087,1
    - Dst: lua_setiuservalue
      Src: /src/memcached/proxy_mutator.c:1088,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_mutator.c:1089,1
    - Dst: lua_setiuservalue
      Src: /src/memcached/proxy_mutator.c:1090,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_mutator.c:1096,1
    - Dst: mcp_mutator_steptype
      Src: /src/memcached/proxy_mutator.c:1097,1
    - Dst: i
      Src: /src/memcached/proxy_mutator.c:1099,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:1109,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - L
    - type
    argTypes:
    - lua_State*
    - enum mcp_mut_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1119
    functionName: mcp_mutator_new
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_pop
    - proxy_lua_ferror
    - luaL_getmetatable
    - lua_setiuservalue
    - mcp_mutator_steptype
    - lua_newuserdatauv
    - malloc
    - struct mcp_mut_entry*::c
    - i
    - lua_gettop
    - lua_getfield
    - luaL_setmetatable
    - proxy_lua_error
    - memset
    linkageType: ''
    returnType: int
    signature: int mcp_mutator_new(lua_State *L, enum mcp_mut_type type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_mutator.c:1126,1
    - Dst: struct mcp_mut_step*::n
      Src: /src/memcached/proxy_mutator.c:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - run
    - parts
    argTypes:
    - struct mcp_mut_run*
    - struct mcp_mut_part*
    assertStmts:
    - condition: (s->type != mcp_mut_step_none)
      pos:
        line_end: 1125
        line_start: 1125
        source_file: /src/memcached/proxy_mutator.c
    constantsTouched: []
    func_position:
      end: 1140
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1140
    functionName: _mcp_mut_run_total
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - struct mcp_mut_step*::n
    - assert
    linkageType: ''
    returnType: int
    signature: int _mcp_mut_run_total(struct mcp_mut_run *run, struct mcp_mut_part
      *parts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_mutator.c:1147,1
    - Dst: struct mcp_mut_step*::r
      Src: /src/memcached/proxy_mutator.c:1150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - run
    - parts
    argTypes:
    - struct mcp_mut_run*
    - struct mcp_mut_part*
    assertStmts:
    - condition: (s->type != mcp_mut_step_none)
      pos:
        line_end: 1146
        line_start: 1146
        source_file: /src/memcached/proxy_mutator.c
    constantsTouched: []
    func_position:
      end: 1164
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1164
    functionName: _mcp_mut_run_assemble
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - struct mcp_mut_step*::r
    - assert
    linkageType: ''
    returnType: int
    signature: int _mcp_mut_run_assemble(struct mcp_mut_run *run, struct mcp_mut_part
      *parts)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_mutator.c:1168,1
    - Dst: _mcp_mut_run_total
      Src: /src/memcached/proxy_mutator.c:1177,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_mutator.c:1179,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1189,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1194,1
    - Dst: _mcp_mut_run_assemble
      Src: /src/memcached/proxy_mutator.c:1199,1
    - Dst: process_request
      Src: /src/memcached/proxy_mutator.c:1201,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1202,1
    - Dst: malloc
      Src: /src/memcached/proxy_mutator.c:1207,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1209,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:1215,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1220,1
    - Dst: malloc
      Src: /src/memcached/proxy_mutator.c:1226,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1228,1
    - Dst: _mcp_mut_run_assemble
      Src: /src/memcached/proxy_mutator.c:1233,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/proxy_mutator.c:1236,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1238,1
    - Dst: memcpy
      Src: /src/memcached/proxy_mutator.c:1244,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 1
    argNames:
    - run
    argTypes:
    - struct mcp_mut_run*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1166
    functionDepth: 4
    functionLinenumber: 1166
    functionLinenumberEnd: 1258
    functionName: mcp_mut_run
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - _mcp_mut_run_total
    - mcmc_parse_buf
    - PROXY_GET_THR
    - malloc
    - process_request
    - _mcp_mut_run_assemble
    - lua_pushboolean
    - proxy_lua_error
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcp_mut_run(struct mcp_mut_run *run)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcp_mutator_new
      Src: /src/memcached/proxy_mutator.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1262
    functionDepth: 2
    functionLinenumber: 1262
    functionLinenumberEnd: 1264
    functionName: mcplib_req_mutator_new
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - mcp_mutator_new
    linkageType: ''
    returnType: int
    signature: int mcplib_req_mutator_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcp_mutator_new
      Src: /src/memcached/proxy_mutator.c:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1268
    functionName: mcplib_res_mutator_new
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - mcp_mutator_new
    linkageType: ''
    returnType: int
    signature: int mcplib_res_mutator_new(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_mutator.c:1272,1
    - Dst: free
      Src: /src/memcached/proxy_mutator.c:1275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1301
    functionName: mcplib_mutator_gc
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - free
    linkageType: ''
    returnType: int
    signature: int mcplib_mutator_gc(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_mutator.c:1305,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_mutator.c:1306,1
    - Dst: lua_checkstack
      Src: /src/memcached/proxy_mutator.c:1307,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_mutator.c:1308,1
    - Dst: lua_getmetatable
      Src: /src/memcached/proxy_mutator.c:1311,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_mutator.c:1312,1
    - Dst: luaL_argcheck
      Src: /src/memcached/proxy_mutator.c:1313,1
    - Dst: lua_rawequal
      Src: /src/memcached/proxy_mutator.c:1313,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_mutator.c:1315,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_mutator.c:1319,1
    - Dst: mcp_mut_run
      Src: /src/memcached/proxy_mutator.c:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1303
    functionDepth: 5
    functionLinenumber: 1303
    functionLinenumberEnd: 1326
    functionName: mcplib_mutator_call
    functionSourceFile: /src/memcached/proxy_mutator.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_getiuservalue
    - lua_checkstack
    - lua_pop
    - lua_touserdata
    - lua_rawequal
    - luaL_argcheck
    - mcp_mut_run
    - lua_getmetatable
    - proxy_lua_error
    linkageType: ''
    returnType: int
    signature: int mcplib_mutator_call(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:6,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_result.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: mcplib_response_elapsed
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_response_elapsed(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: res_buf
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_buf(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:16,1
    - Dst: res_buf
      Src: /src/memcached/proxy_result.c:17,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_result.c:19,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_result.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: mcplib_response_raw_string
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushlstring
    - res_buf
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_response_raw_string(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:28,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_result.c:31,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_result.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: mcplib_response_ok
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_response_ok(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:40,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_result.c:43,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_result.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: mcplib_response_hit
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_response_hit(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:55,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_result.c:60,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_result.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: mcplib_response_vlen
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_response_vlen(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:70,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_result.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: mcplib_response_code
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_response_code(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:79,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_result.c:82,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_result.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: mcplib_response_line
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushlstring
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_response_line(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:91,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_result.c:94,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_result.c:97,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_result.c:101,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/proxy_result.c:105,1
    - Dst: isspace
      Src: /src/memcached/proxy_result.c:120,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_result.c:124,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_result.c:133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 135
    functionName: mcplib_response_flag_blank
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - mcmc_parse_buf
    - luaL_checklstring
    - luaL_checkudata
    - lua_pushboolean
    - proxy_lua_error
    - isspace
    linkageType: ''
    returnType: int
    signature: int mcplib_response_flag_blank(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/proxy_result.c:143,1
    - Dst: assert
      Src: /src/memcached/proxy_result.c:151,1
    - Dst: item_remove
      Src: /src/memcached/proxy_result.c:153,1
    - Dst: resp_free
      Src: /src/memcached/proxy_result.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - r
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_resp_t*
    assertStmts:
    - condition: (r->thread != NULL)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/memcached/proxy_result.c
    constantsTouched: []
    func_position:
      end: 159
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 159
    functionName: mcp_response_cleanup
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - free
    - item_remove
    - assert
    - resp_free
    linkageType: ''
    returnType: void
    signature: void mcp_response_cleanup(LIBEVENT_THREAD *t, mcp_resp_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_result.c:162,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:163,1
    - Dst: mcp_response_cleanup
      Src: /src/memcached/proxy_result.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: mcplib_response_gc
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - mcp_response_cleanup
    - PROXY_GET_THR
    linkageType: ''
    returnType: int
    signature: int mcplib_response_gc(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_result.c:173,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_result.c:174,1
    - Dst: mcp_response_cleanup
      Src: /src/memcached/proxy_result.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: mcplib_response_close
    functionSourceFile: /src/memcached/proxy_result.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - mcp_response_cleanup
    - PROXY_GET_THR
    linkageType: ''
    returnType: int
    signature: int mcplib_response_close(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/memcached/util.c:19,1
    - Dst: snprintf
      Src: /src/memcached/util.c:22,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: uriencode_init
    functionSourceFile: /src/memcached/util.c
    functionUses: 0
    functionsReached:
    - snprintf
    - isalnum
    linkageType: ''
    returnType: void
    signature: void uriencode_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/util.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - src
    - dst
    - srclen
    - dstlen
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: uriencode
    functionSourceFile: /src/memcached/util.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool uriencode(const char *src, char *dst, const size_t srclen, const
      size_t dstlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/util.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - src
    - dst
    - srclen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: uriencode_p
    functionSourceFile: /src/memcached/util.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *uriencode_p(const char *src, char *dst, const size_t srclen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: xisspace
    functionSourceFile: /src/memcached/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xisspace(c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/util.c:68,1
    - Dst: strtoull
      Src: /src/memcached/util.c:72,1
    - Dst: xisspace
      Src: /src/memcached/util.c:77,1
    - Dst: memchr
      Src: /src/memcached/util.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - uint64_t*
    assertStmts:
    - condition: (out != NULL)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/memcached/util.c
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: safe_strtoull
    functionSourceFile: /src/memcached/util.c
    functionUses: 5
    functionsReached:
    - xisspace
    - assert
    - strtoull
    - memchr
    linkageType: ''
    returnType: bool
    signature: bool safe_strtoull(const char *str, uint64_t *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/util.c:98,1
    - Dst: strtoull
      Src: /src/memcached/util.c:102,1
    - Dst: xisspace
      Src: /src/memcached/util.c:107,1
    - Dst: memchr
      Src: /src/memcached/util.c:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - uint64_t*
    assertStmts:
    - condition: (out != NULL)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/memcached/util.c
    constantsTouched: []
    func_position:
      end: 120
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 120
    functionName: safe_strtoull_hex
    functionSourceFile: /src/memcached/util.c
    functionUses: 1
    functionsReached:
    - xisspace
    - assert
    - strtoull
    - memchr
    linkageType: ''
    returnType: bool
    signature: bool safe_strtoull_hex(const char *str, uint64_t *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/util.c:123,1
    - Dst: strtoll
      Src: /src/memcached/util.c:127,1
    - Dst: xisspace
      Src: /src/memcached/util.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - int64_t*
    assertStmts:
    - condition: (out != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/memcached/util.c
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: safe_strtoll
    functionSourceFile: /src/memcached/util.c
    functionUses: 3
    functionsReached:
    - xisspace
    - strtoll
    - assert
    linkageType: ''
    returnType: bool
    signature: bool safe_strtoll(const char *str, int64_t *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/util.c:142,1
    - Dst: assert
      Src: /src/memcached/util.c:143,1
    - Dst: strtoul
      Src: /src/memcached/util.c:147,1
    - Dst: xisspace
      Src: /src/memcached/util.c:152,1
    - Dst: memchr
      Src: /src/memcached/util.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - uint32_t*
    assertStmts:
    - condition: (out)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/memcached/util.c
    - condition: (str)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/memcached/util.c
    constantsTouched: []
    func_position:
      end: 166
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 166
    functionName: safe_strtoul
    functionSourceFile: /src/memcached/util.c
    functionUses: 4
    functionsReached:
    - xisspace
    - strtoul
    - assert
    - memchr
    linkageType: ''
    returnType: bool
    signature: bool safe_strtoul(const char *str, uint32_t *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/util.c:169,1
    - Dst: strtol
      Src: /src/memcached/util.c:173,1
    - Dst: xisspace
      Src: /src/memcached/util.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - int32_t*
    assertStmts:
    - condition: (out != NULL)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/memcached/util.c
    constantsTouched: []
    func_position:
      end: 183
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 183
    functionName: safe_strtol
    functionSourceFile: /src/memcached/util.c
    functionUses: 8
    functionsReached:
    - xisspace
    - strtol
    - assert
    linkageType: ''
    returnType: bool
    signature: bool safe_strtol(const char *str, int32_t *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/util.c:186,1
    - Dst: strtod
      Src: /src/memcached/util.c:190,1
    - Dst: xisspace
      Src: /src/memcached/util.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - double*
    assertStmts:
    - condition: (out != NULL)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/memcached/util.c
    constantsTouched: []
    func_position:
      end: 200
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 200
    functionName: safe_strtod
    functionSourceFile: /src/memcached/util.c
    functionUses: 1
    functionsReached:
    - xisspace
    - strtod
    - assert
    linkageType: ''
    returnType: bool
    signature: bool safe_strtod(const char *str, double *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - dst
    - src
    - dstmax
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: safe_strcpy
    functionSourceFile: /src/memcached/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool safe_strcpy(char *dst, const char *src, const size_t dstmax)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: safe_memcmp
    functionSourceFile: /src/memcached/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool safe_memcmp(const void *a, const void *b, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/memcached/util.c:246,1
    - Dst: vsnprintf
      Src: /src/memcached/util.c:247,1
    - Dst: va_end
      Src: /src/memcached/util.c:250,1
    - Dst: perror
      Src: /src/memcached/util.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: vperror
    functionSourceFile: /src/memcached/util.c
    functionUses: 4
    functionsReached:
    - perror
    - va_end
    - vsnprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: void vperror(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 273
    functionName: mc_swap64
    functionSourceFile: /src/memcached/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mc_swap64(uint64_t in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mc_swap64
      Src: /src/memcached/util.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: ntohll
    functionSourceFile: /src/memcached/util.c
    functionUses: 2
    functionsReached:
    - mc_swap64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ntohll(uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mc_swap64
      Src: /src/memcached/util.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: htonll
    functionSourceFile: /src/memcached/util.c
    functionUses: 1
    functionsReached:
    - mc_swap64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t htonll(uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ts1
    - ts2
    argTypes:
    - struct timespec*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: mc_timespec_add
    functionSourceFile: /src/memcached/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mc_timespec_add(struct timespec *ts1,\n        struct timespec
      *ts2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/slab_automove.c:37,1
    - Dst: calloc
      Src: /src/memcached/slab_automove.c:40,1
    - Dst: free
      Src: /src/memcached/slab_automove.c:44,1
    - Dst: fill_item_stats_automove
      Src: /src/memcached/slab_automove.c:49,1
    - Dst: fill_slab_stats_automove
      Src: /src/memcached/slab_automove.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - settings
    argTypes:
    - struct settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: slab_automove_init
    functionSourceFile: /src/memcached/slab_automove.c
    functionUses: 0
    functionsReached:
    - free
    - fill_item_stats_automove
    - calloc
    - fill_slab_stats_automove
    linkageType: ''
    returnType: void
    signature: void *slab_automove_init(struct settings *settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/slab_automove.c:57,1
    - Dst: free
      Src: /src/memcached/slab_automove.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: slab_automove_free
    functionSourceFile: /src/memcached/slab_automove.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void slab_automove_free(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - wd
    - w
    - size
    argTypes:
    - struct window_data*
    - struct window_data*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: window_sum
    functionSourceFile: /src/memcached/slab_automove.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void window_sum(struct window_data *wd, struct window_data *w, uint32_t
      size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fill_item_stats_automove
      Src: /src/memcached/slab_automove.c:87,1
    - Dst: fill_slab_stats_automove
      Src: /src/memcached/slab_automove.c:88,1
    - Dst: memset
      Src: /src/memcached/slab_automove.c:100,1
    - Dst: memset
      Src: /src/memcached/slab_automove.c:123,1
    - Dst: window_sum
      Src: /src/memcached/slab_automove.c:124,1
    - Dst: memcpy
      Src: /src/memcached/slab_automove.c:156,1
    - Dst: memcpy
      Src: /src/memcached/slab_automove.c:158,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - arg
    - src
    - dst
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 169
    functionName: slab_automove_run
    functionSourceFile: /src/memcached/slab_automove.c
    functionUses: 0
    functionsReached:
    - fill_item_stats_automove
    - fill_slab_stats_automove
    - window_sum
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void slab_automove_run(void *arg, int *src, int *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: XXH_IPREF
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_IPREF(Id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: XXH_CAT
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_CAT(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: XXH_NAME2
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_NAME2(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 921
    functionName: XXH_ALIGN
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 923
    functionName: XXH_ALIGN
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 925
    functionName: XXH_ALIGN
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - align
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 933
    functionName: XXH_ALIGN_MEMBER
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN_MEMBER(align, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - align
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 935
    functionName: XXH_ALIGN_MEMBER
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN_MEMBER(align, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - XXH3_state_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1018
    functionName: XXH3_INITSTATE
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH3_INITSTATE(XXH3_state_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/xxhash.h:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1314
    functionName: XXH_malloc
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void * XXH_malloc(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/xxhash.h:1320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1320
    functionName: XXH_free
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void XXH_free(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1331
    functionName: XXH_memcpy
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void * XXH_memcpy(void* dest, const void* src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1390
    functionName: XXH_ASSERT
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1392
    functionName: XXH_ASSERT
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1396
    functionName: XXH_STATIC_ASSERT
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1415
    functionName: XXH_COMPILER_GUARD
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1417
    functionName: XXH_COMPILER_GUARD
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1501
    functionName: XXH_read32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_read32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1518
    functionName: XXH_read32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_read32(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1531
    functionName: XXH_read32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_read32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1582
    functionName: XXH_isLittleEndian
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XXH_isLittleEndian(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1597
    functionName: XXH_HAS_BUILTIN
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_BUILTIN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1599
    functionName: XXH_HAS_BUILTIN
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_BUILTIN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1620
    functionDepth: 0
    functionLinenumber: 1620
    functionLinenumberEnd: 1621
    functionName: XXH_rotl32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl32(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1622
    functionName: XXH_rotl64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl64(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1624
    functionName: XXH_rotl32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl32(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1625
    functionName: XXH_rotl64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl64(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1646
    functionName: XXH_swap32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_swap32 (xxh_u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1677
    functionName: XXH_readLE32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1686
    functionName: XXH_readBE32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readBE32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_read32
      Src: /src/memcached/xxhash.h:1691,1
    - Dst: XXH_swap32
      Src: /src/memcached/xxhash.h:1691,1
    - Dst: XXH_read32
      Src: /src/memcached/xxhash.h:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1692
    functionName: XXH_readLE32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_read32
    - XXH_swap32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE32(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_swap32
      Src: /src/memcached/xxhash.h:1696,1
    - Dst: XXH_read32
      Src: /src/memcached/xxhash.h:1696,1
    - Dst: XXH_read32
      Src: /src/memcached/xxhash.h:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1697
    functionName: XXH_readBE32
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_read32
    - XXH_swap32
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_readBE32(const void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:1704,1
    - Dst: XXH_swap32
      Src: /src/memcached/xxhash.h:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - align
    argTypes:
    - void*
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1708
    functionName: XXH_readLE32_align
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH_swap32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE32_align(const void* ptr, XXH_alignment
      align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1715
    functionName: XXH_versionNumber
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_PUBLIC_API unsigned
    signature: XXH_PUBLIC_API unsigned XXH_versionNumber (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:1756,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/memcached/xxhash.h:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - acc
    - input
    argTypes:
    - xxh_u32
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1753
    functionDepth: 1
    functionLinenumber: 1753
    functionLinenumberEnd: 1795
    functionName: XXH32_round
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH_rotl32
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h32
    argTypes:
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1815
    functionName: XXH32_avalanche
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH32_avalanche(xxh_u32 h32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1818
    functionName: XXH_get32bits
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_get32bits(p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: XXH32_avalanche
      Src: /src/memcached/xxhash.h:1858,1
    - Dst: XXH32_avalanche
      Src: /src/memcached/xxhash.h:1866,1
    - Dst: XXH32_avalanche
      Src: /src/memcached/xxhash.h:1874,1
    - Dst: XXH32_avalanche
      Src: /src/memcached/xxhash.h:1883,1
    - Dst: XXH32_avalanche
      Src: /src/memcached/xxhash.h:1897,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:1899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 4
    argNames:
    - h32
    - ptr
    - len
    - align
    argTypes:
    - xxh_u32
    - xxh_u8*
    - size_t
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1902
    functionName: XXH32_finalize
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH32_avalanche
    - XXH_ASSERT
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH32_finalize(xxh_u32 h32, const xxh_u8* ptr, size_t len,
      XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:1941,1
    - Dst: XXH_get32bits
      Src: /src/memcached/xxhash.h:1941,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:1942,1
    - Dst: XXH_get32bits
      Src: /src/memcached/xxhash.h:1942,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:1943,1
    - Dst: XXH_get32bits
      Src: /src/memcached/xxhash.h:1943,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:1944,1
    - Dst: XXH_get32bits
      Src: /src/memcached/xxhash.h:1944,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:1947,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:1947,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:1948,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:1948,1
    - Dst: XXH32_finalize
      Src: /src/memcached/xxhash.h:1955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - input
    - len
    - seed
    - align
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u32
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1920
    functionDepth: 2
    functionLinenumber: 1920
    functionLinenumberEnd: 1956
    functionName: XXH32_endian_align
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_get32bits
    - XXH32_round
    - XXH32_finalize
    - XXH_rotl32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH32_endian_align(const xxh_u8* input, size_t len,
      xxh_u32 seed, XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH32_reset
      Src: /src/memcached/xxhash.h:1964,1
    - Dst: XXH32_update
      Src: /src/memcached/xxhash.h:1965,1
    - Dst: XXH32_digest
      Src: /src/memcached/xxhash.h:1966,1
    - Dst: XXH32_endian_align
      Src: /src/memcached/xxhash.h:1970,1
    - Dst: XXH32_endian_align
      Src: /src/memcached/xxhash.h:1973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1959
    functionDepth: 3
    functionLinenumber: 1959
    functionLinenumberEnd: 1975
    functionName: XXH32_hash_t
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH32_digest
    - XXH32_endian_align
    - XXH32_reset
    - XXH32_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_hash_t XXH32 (const void* input, size_t len, XXH32_hash_t
      seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_malloc
      Src: /src/memcached/xxhash.h:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1986
    functionName: XXH32_state_t* XXH32_createState(void)
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_malloc
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_free
      Src: /src/memcached/xxhash.h:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 1992
    functionName: XXH_errorcode::XXH32_freeState
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_free
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstState
    - srcState
    argTypes:
    - XXH32_state_t*
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 1998
    functionName: XXH32_copyState
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_copyState(XXH32_state_t* dstState, const XXH32_state_t*
      srcState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/xxhash.h:2004,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:2010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - XXH32_state_t*
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 2001
    functionDepth: 0
    functionLinenumber: 2001
    functionLinenumberEnd: 2012
    functionName: XXH_errorcode::XXH32_reset
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t
      seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:2033,1
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:2039,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2041,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2041,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2042,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2042,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2043,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2043,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2044,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2044,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2058,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2058,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2059,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2059,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2060,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2060,1
    - Dst: XXH32_round
      Src: /src/memcached/xxhash.h:2061,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:2061,1
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:2071,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - XXH32_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2016
    functionDepth: 2
    functionLinenumber: 2016
    functionLinenumberEnd: 2077
    functionName: XXH_errorcode::XXH32_update
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH32_round
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH32_update(XXH32_state_t* state, const void* input, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:2086,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:2087,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:2088,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:2089,1
    - Dst: XXH32_finalize
      Src: /src/memcached/xxhash.h:2096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2081
    functionDepth: 2
    functionLinenumber: 2081
    functionLinenumberEnd: 2097
    functionName: XXH32_hash_t::XXH32_digest
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH32_finalize
    - XXH_rotl32
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:2118,1
    - Dst: XXH_swap32
      Src: /src/memcached/xxhash.h:2119,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:2120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - hash
    argTypes:
    - XXH32_canonical_t*
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2121
    functionName: XXH32_canonicalFromHash
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_swap32
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE32
      Src: /src/memcached/xxhash.h:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - XXH32_canonical_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2126
    functionName: XXH32_hash_t::XXH32_hashFromCanonical
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readBE32
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t*
      src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2158
    functionName: XXH_read64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_read64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2171
    functionDepth: 0
    functionLinenumber: 2171
    functionLinenumberEnd: 2175
    functionName: XXH_read64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_read64(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:2186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2188
    functionName: XXH_read64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_read64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2207
    functionName: XXH_swap64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_swap64(xxh_u64 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2214
    functionDepth: 0
    functionLinenumber: 2214
    functionLinenumberEnd: 2225
    functionName: XXH_readLE64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2227
    functionDepth: 0
    functionLinenumber: 2227
    functionLinenumberEnd: 2238
    functionName: XXH_readBE64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readBE64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_read64
      Src: /src/memcached/xxhash.h:2243,1
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:2243,1
    - Dst: XXH_read64
      Src: /src/memcached/xxhash.h:2243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2241
    functionDepth: 1
    functionLinenumber: 2241
    functionLinenumberEnd: 2244
    functionName: XXH_readLE64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_read64
    - XXH_swap64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE64(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:2248,1
    - Dst: XXH_read64
      Src: /src/memcached/xxhash.h:2248,1
    - Dst: XXH_read64
      Src: /src/memcached/xxhash.h:2248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2246
    functionDepth: 1
    functionLinenumber: 2246
    functionLinenumberEnd: 2249
    functionName: XXH_readBE64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_read64
    - XXH_swap64
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_readBE64(const void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2256,1
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:2258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - align
    argTypes:
    - void*
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2252
    functionDepth: 1
    functionLinenumber: 2252
    functionLinenumberEnd: 2259
    functionName: XXH_readLE64_align
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE64_align(const void* ptr, XXH_alignment
      align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - acc
    - input
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2284
    functionDepth: 1
    functionLinenumber: 2284
    functionLinenumberEnd: 2290
    functionName: XXH64_round
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_rotl64
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_round(xxh_u64 acc, xxh_u64 input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - acc
    - val
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2292
    functionDepth: 2
    functionLinenumber: 2292
    functionLinenumberEnd: 2298
    functionName: XXH64_mergeRound
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_round
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_mergeRound(xxh_u64 acc, xxh_u64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h64
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2308
    functionName: XXH64_avalanche
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_avalanche(xxh_u64 h64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2311
    functionDepth: 0
    functionLinenumber: 2311
    functionLinenumberEnd: 2312
    functionName: XXH_get64bits
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_get64bits(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2318,1
    - Dst: XXH_get64bits
      Src: /src/memcached/xxhash.h:2318,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2321,1
    - Dst: XXH_get32bits
      Src: /src/memcached/xxhash.h:2325,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2327,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2332,1
    - Dst: XXH64_avalanche
      Src: /src/memcached/xxhash.h:2335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - h64
    - ptr
    - len
    - align
    argTypes:
    - xxh_u64
    - xxh_u8*
    - size_t
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2313
    functionDepth: 2
    functionLinenumber: 2313
    functionLinenumberEnd: 2336
    functionName: XXH64_finalize
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_avalanche
    - XXH_get64bits
    - XXH64_round
    - XXH_get32bits
    - XXH_rotl64
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_finalize(xxh_u64 h64, const xxh_u8* ptr, size_t len,
      XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2369,1
    - Dst: XXH_get64bits
      Src: /src/memcached/xxhash.h:2369,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2370,1
    - Dst: XXH_get64bits
      Src: /src/memcached/xxhash.h:2370,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2371,1
    - Dst: XXH_get64bits
      Src: /src/memcached/xxhash.h:2371,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2372,1
    - Dst: XXH_get64bits
      Src: /src/memcached/xxhash.h:2372,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2375,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2375,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2375,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2375,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2376,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2377,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2378,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2379,1
    - Dst: XXH64_finalize
      Src: /src/memcached/xxhash.h:2387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - input
    - len
    - seed
    - align
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u64
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2348
    functionDepth: 3
    functionLinenumber: 2348
    functionLinenumberEnd: 2388
    functionName: XXH64_endian_align
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_mergeRound
    - XXH64_finalize
    - XXH_get64bits
    - XXH64_round
    - XXH_rotl64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH64_endian_align(const xxh_u8* input, size_t len,
      xxh_u64 seed, XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_reset
      Src: /src/memcached/xxhash.h:2397,1
    - Dst: XXH64_update
      Src: /src/memcached/xxhash.h:2398,1
    - Dst: XXH64_digest
      Src: /src/memcached/xxhash.h:2399,1
    - Dst: XXH64_endian_align
      Src: /src/memcached/xxhash.h:2403,1
    - Dst: XXH64_endian_align
      Src: /src/memcached/xxhash.h:2406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2392
    functionDepth: 4
    functionLinenumber: 2392
    functionLinenumberEnd: 2409
    functionName: XXH64_hash_t
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_endian_align
    - XXH64_digest
    - XXH64_reset
    - XXH64_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH64 (const void* input, size_t len, XXH64_hash_t
      seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_malloc
      Src: /src/memcached/xxhash.h:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2414
    functionDepth: 1
    functionLinenumber: 2414
    functionLinenumberEnd: 2417
    functionName: XXH64_state_t* XXH64_createState(void)
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_malloc
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_free
      Src: /src/memcached/xxhash.h:2421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH64_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2419
    functionDepth: 1
    functionLinenumber: 2419
    functionLinenumberEnd: 2423
    functionName: XXH_errorcode::XXH64_freeState
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_free
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstState
    - srcState
    argTypes:
    - XXH64_state_t*
    - XXH64_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2429
    functionName: XXH64_copyState
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_copyState(XXH64_state_t* dstState, const XXH64_state_t*
      srcState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/xxhash.h:2435,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - XXH64_state_t*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2432
    functionDepth: 0
    functionLinenumber: 2432
    functionLinenumberEnd: 2443
    functionName: XXH_errorcode::XXH64_reset
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, XXH64_hash_t
      seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:2462,1
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:2468,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2469,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2469,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2470,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2470,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2471,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2471,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2472,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2472,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2485,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2485,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2486,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2486,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2487,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2487,1
    - Dst: XXH64_round
      Src: /src/memcached/xxhash.h:2488,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:2488,1
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:2498,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - XXH64_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2446
    functionDepth: 2
    functionLinenumber: 2446
    functionLinenumberEnd: 2504
    functionName: XXH_errorcode::XXH64_update
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    - XXH_readLE64
    - XXH64_round
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH64_update (XXH64_state_t* state, const void* input, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2518,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2518,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2518,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:2518,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2519,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2520,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2521,1
    - Dst: XXH64_mergeRound
      Src: /src/memcached/xxhash.h:2522,1
    - Dst: XXH64_finalize
      Src: /src/memcached/xxhash.h:2529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - XXH64_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2508
    functionDepth: 3
    functionLinenumber: 2508
    functionLinenumberEnd: 2530
    functionName: XXH64_hash_t::XXH64_digest
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_mergeRound
    - XXH_rotl64
    - XXH64_finalize
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH64_digest(const XXH64_state_t* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:2538,1
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:2539,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - hash
    argTypes:
    - XXH64_canonical_t*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2536
    functionDepth: 1
    functionLinenumber: 2536
    functionLinenumberEnd: 2541
    functionName: XXH64_canonicalFromHash
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - memcpy
    - XXH_swap64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE64
      Src: /src/memcached/xxhash.h:2546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - XXH64_canonical_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2544
    functionDepth: 1
    functionLinenumber: 2544
    functionLinenumberEnd: 2547
    functionName: XXH64_hash_t::XXH64_hashFromCanonical
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readBE64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t*
      src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2577
    functionName: XXH_likely
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2577
    functionDepth: 0
    functionLinenumber: 2577
    functionLinenumberEnd: 2578
    functionName: XXH_unlikely
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2579
    functionDepth: 0
    functionLinenumber: 2579
    functionLinenumberEnd: 2580
    functionName: XXH_likely
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2581
    functionName: XXH_unlikely
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in
    - ','
    - outLo
    - ','
    - outHi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2893
    functionDepth: 0
    functionLinenumber: 2893
    functionLinenumberEnd: 2897
    functionName: XXH_SPLIT_IN_PLACE
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_SPLIT_IN_PLACE(in, outLo, outHi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in
    - ','
    - outLo
    - ','
    - outHi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2903
    functionDepth: 0
    functionLinenumber: 2903
    functionLinenumberEnd: 2908
    functionName: XXH_SPLIT_IN_PLACE
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_SPLIT_IN_PLACE(in, outLo, outHi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_perm
      Src: /src/memcached/xxhash.h:2964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - xxh_u64x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2960
    functionDepth: 0
    functionLinenumber: 2960
    functionLinenumberEnd: 2965
    functionName: XXH_vec_revb
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - vec_perm
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_revb(xxh_u64x2 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:2975,1
    - Dst: XXH_vec_revb
      Src: /src/memcached/xxhash.h:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 2980
    functionName: XXH_vec_loadu
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_vec_revb
    - memcpy
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_loadu(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - xxh_u32x4
    - xxh_u32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3004
      start: 2999
    functionDepth: 0
    functionLinenumber: 2999
    functionLinenumberEnd: 3004
    functionName: XXH_vec_mulo
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_mulo(xxh_u32x4 a, xxh_u32x4 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - xxh_u32x4
    - xxh_u32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3005
    functionDepth: 0
    functionLinenumber: 3005
    functionLinenumberEnd: 3010
    functionName: XXH_vec_mule
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_mule(xxh_u32x4 a, xxh_u32x4 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 3018
    functionDepth: 0
    functionLinenumber: 3018
    functionLinenumberEnd: 3019
    functionName: XXH_PREFETCH
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 3022
    functionDepth: 0
    functionLinenumber: 3022
    functionLinenumberEnd: 3023
    functionName: XXH_PREFETCH
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 3026
    functionDepth: 0
    functionLinenumber: 3026
    functionLinenumberEnd: 3027
    functionName: XXH_PREFETCH
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3079
    functionDepth: 0
    functionLinenumber: 3079
    functionLinenumberEnd: 3083
    functionName: XXH_mult32to64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_mult32to64(xxh_u64 x, xxh_u64 y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3086
    functionDepth: 0
    functionLinenumber: 3086
    functionLinenumberEnd: 3087
    functionName: XXH_mult32to64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_mult32to64(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3096
      start: 3095
    functionDepth: 0
    functionLinenumber: 3095
    functionLinenumberEnd: 3096
    functionName: XXH_mult32to64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_mult32to64(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _umul128
      Src: /src/memcached/xxhash.h:3148,1
    - Dst: XXH_mult32to64
      Src: /src/memcached/xxhash.h:3199,1
    - Dst: XXH_mult32to64
      Src: /src/memcached/xxhash.h:3200,1
    - Dst: XXH_mult32to64
      Src: /src/memcached/xxhash.h:3201,1
    - Dst: XXH_mult32to64
      Src: /src/memcached/xxhash.h:3202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3214
      start: 3107
    functionDepth: 1
    functionLinenumber: 3107
    functionLinenumberEnd: 3214
    functionName: XXH_mult64to128
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _umul128
    - XXH_mult32to64
    linkageType: ''
    returnType: XXH128_hash_t
    signature: XXH128_hash_t XXH_mult64to128(xxh_u64 lhs, xxh_u64 rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_mult64to128
      Src: /src/memcached/xxhash.h:3229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3226
    functionDepth: 2
    functionLinenumber: 3226
    functionLinenumberEnd: 3231
    functionName: XXH3_mul128_fold64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_mult64to128
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH3_mul128_fold64(xxh_u64 lhs, xxh_u64 rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v64
    - shift
    argTypes:
    - xxh_u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3238
      start: 3234
    functionDepth: 1
    functionLinenumber: 3234
    functionLinenumberEnd: 3238
    functionName: XXH_xorshift64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_xorshift64(xxh_u64 v64, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_xorshift64
      Src: /src/memcached/xxhash.h:3246,1
    - Dst: XXH_xorshift64
      Src: /src/memcached/xxhash.h:3248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h64
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3244
    functionDepth: 2
    functionLinenumber: 3244
    functionLinenumberEnd: 3250
    functionName: XXH3_avalanche
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_xorshift64
    linkageType: ''
    returnType: XXH64_hash_t
    signature: XXH64_hash_t XXH3_avalanche(xxh_u64 h64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:3260,1
    - Dst: XXH_rotl64
      Src: /src/memcached/xxhash.h:3260,1
    - Dst: XXH_xorshift64
      Src: /src/memcached/xxhash.h:3264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - h64
    - len
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3257
    functionDepth: 2
    functionLinenumber: 3257
    functionLinenumberEnd: 3265
    functionName: XXH3_rrmxmx
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_rotl64
    - XXH_xorshift64
    linkageType: ''
    returnType: XXH64_hash_t
    signature: XXH64_hash_t XXH3_rrmxmx(xxh_u64 h64, xxh_u64 len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3304,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3305,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3306,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:3317,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:3317,1
    - Dst: XXH64_avalanche
      Src: /src/memcached/xxhash.h:3319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3301
    functionDepth: 1
    functionLinenumber: 3301
    functionLinenumberEnd: 3321
    functionName: XXH64_hash_t::XXH3_len_1to3_64b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH64_avalanche
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH64_hash_t

      XXH3_len_1to3_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3326,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3327,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3328,1
    - Dst: XXH_swap32
      Src: /src/memcached/xxhash.h:3329,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:3330,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:3331,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3332,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3332,1
    - Dst: XXH3_rrmxmx
      Src: /src/memcached/xxhash.h:3335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3323
    functionDepth: 3
    functionLinenumber: 3323
    functionLinenumberEnd: 3337
    functionName: XXH64_hash_t::XXH3_len_4to8_64b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH_swap32
    - XXH3_rrmxmx
    - XXH_readLE64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH64_hash_t

      XXH3_len_4to8_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3342,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3343,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3344,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3345,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3345,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3346,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3346,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3347,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3348,1
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:3350,1
    - Dst: XXH3_mul128_fold64
      Src: /src/memcached/xxhash.h:3351,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:3352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3339
    functionDepth: 3
    functionLinenumber: 3339
    functionLinenumberEnd: 3354
    functionName: XXH64_hash_t::XXH3_len_9to16_64b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_avalanche
    - XXH3_mul128_fold64
    - XXH_readLE64
    - XXH_swap64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH64_hash_t

      XXH3_len_9to16_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3359,1
    - Dst: XXH_likely
      Src: /src/memcached/xxhash.h:3360,1
    - Dst: XXH64_hash_t::XXH3_len_9to16_64b
      Src: /src/memcached/xxhash.h:3360,1
    - Dst: XXH_likely
      Src: /src/memcached/xxhash.h:3361,1
    - Dst: XXH64_hash_t::XXH3_len_4to8_64b
      Src: /src/memcached/xxhash.h:3361,1
    - Dst: XXH64_hash_t::XXH3_len_1to3_64b
      Src: /src/memcached/xxhash.h:3362,1
    - Dst: XXH64_avalanche
      Src: /src/memcached/xxhash.h:3363,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3363,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3356
    functionDepth: 4
    functionLinenumber: 3356
    functionLinenumberEnd: 3365
    functionName: XXH64_hash_t::XXH3_len_0to16_64b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_len_9to16_64b
    - XXH64_avalanche
    - XXH_likely
    - XXH64_hash_t::XXH3_len_4to8_64b
    - XXH_readLE64
    - XXH64_hash_t::XXH3_len_1to3_64b
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH64_hash_t

      XXH3_len_0to16_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_COMPILER_GUARD
      Src: /src/memcached/xxhash.h:3414,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3416,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3417,1
    - Dst: XXH3_mul128_fold64
      Src: /src/memcached/xxhash.h:3418,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3419,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:3420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - seed64
    argTypes:
    - xxh_u8*
    - xxh_u8*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3423
      start: 3393
    functionDepth: 3
    functionLinenumber: 3393
    functionLinenumberEnd: 3423
    functionName: XXH3_mix16B
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH3_mul128_fold64
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_mix16B(const xxh_u8* XXH_RESTRICT input,\n                                     const
      xxh_u8* XXH_RESTRICT secret, xxh_u64 seed64)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3431,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3432,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3438,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3439,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3441,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3442,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3444,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3445,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3447,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3448,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:3450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3452
      start: 3426
    functionDepth: 4
    functionLinenumber: 3426
    functionLinenumberEnd: 3452
    functionName: XXH64_hash_t::XXH3_len_17to128_64b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_avalanche
    - XXH3_mix16B
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_len_17to128_64b(const xxh_u8*
      XXH_RESTRICT input, size_t len,\n                     const xxh_u8* XXH_RESTRICT
      secret, size_t secretSize,\n                     XXH64_hash_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3461,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3462,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3471,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:3473,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3474,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3501,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:3504,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:3505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3456
    functionDepth: 4
    functionLinenumber: 3456
    functionLinenumberEnd: 3507
    functionName: XXH64_hash_t::XXH3_len_129to240_64b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_avalanche
    - XXH3_mix16B
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH64_hash_t\nXXH3_len_129to240_64b(const xxh_u8* XXH_RESTRICT
      input, size_t len,\n                      const xxh_u8* XXH_RESTRICT secret,
      size_t secretSize,\n                      XXH64_hash_t seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:3523,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:3524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - v64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3525
      start: 3521
    functionDepth: 1
    functionLinenumber: 3521
    functionLinenumberEnd: 3525
    functionName: XXH_writeLE64
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcpy
    - XXH_swap64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_writeLE64(void* dst, xxh_u64 v64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3576,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3577,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3578,1
    - Dst: _mm512_loadu_si512
      Src: /src/memcached/xxhash.h:3582,1
    - Dst: _mm512_loadu_si512
      Src: /src/memcached/xxhash.h:3584,1
    - Dst: _mm512_xor_si512
      Src: /src/memcached/xxhash.h:3586,1
    - Dst: _mm512_shuffle_epi32
      Src: /src/memcached/xxhash.h:3588,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3588,1
    - Dst: _mm512_mul_epu32
      Src: /src/memcached/xxhash.h:3590,1
    - Dst: _mm512_shuffle_epi32
      Src: /src/memcached/xxhash.h:3592,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3592,1
    - Dst: _mm512_add_epi64
      Src: /src/memcached/xxhash.h:3593,1
    - Dst: _mm512_add_epi64
      Src: /src/memcached/xxhash.h:3595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3571
    functionDepth: 1
    functionLinenumber: 3571
    functionLinenumberEnd: 3597
    functionName: XXH3_accumulate_512_avx512
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    - XXH_STATIC_ASSERT
    - _mm512_shuffle_epi32
    - _mm512_add_epi64
    - _mm512_loadu_si512
    - _mm512_mul_epu32
    - XXH_ALIGN
    - _MM_SHUFFLE
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_avx512(void* XXH_RESTRICT acc,\n
      \                    const void* XXH_RESTRICT input,\n                     const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3623,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3624,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3625,1
    - Dst: _mm512_set1_epi32
      Src: /src/memcached/xxhash.h:3626,1
    - Dst: _mm512_srli_epi64
      Src: /src/memcached/xxhash.h:3630,1
    - Dst: _mm512_xor_si512
      Src: /src/memcached/xxhash.h:3631,1
    - Dst: _mm512_loadu_si512
      Src: /src/memcached/xxhash.h:3633,1
    - Dst: _mm512_xor_si512
      Src: /src/memcached/xxhash.h:3634,1
    - Dst: _mm512_shuffle_epi32
      Src: /src/memcached/xxhash.h:3637,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3637,1
    - Dst: _mm512_mul_epu32
      Src: /src/memcached/xxhash.h:3638,1
    - Dst: _mm512_mul_epu32
      Src: /src/memcached/xxhash.h:3639,1
    - Dst: _mm512_add_epi64
      Src: /src/memcached/xxhash.h:3640,1
    - Dst: _mm512_slli_epi64
      Src: /src/memcached/xxhash.h:3640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3642
      start: 3620
    functionDepth: 1
    functionLinenumber: 3620
    functionLinenumberEnd: 3642
    functionName: XXH3_scrambleAcc_avx512
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    - _mm512_set1_epi32
    - XXH_STATIC_ASSERT
    - _mm512_shuffle_epi32
    - _mm512_add_epi64
    - XXH_ASSERT
    - _mm512_slli_epi64
    - _mm512_loadu_si512
    - _mm512_mul_epu32
    - XXH_ALIGN
    - _MM_SHUFFLE
    - _mm512_srli_epi64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_avx512(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3647,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3648,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3649,1
    - Dst: _mm512_mask_set1_epi64
      Src: /src/memcached/xxhash.h:3652,1
    - Dst: _mm512_set1_epi64
      Src: /src/memcached/xxhash.h:3652,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3654,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3655,1
    - Dst: _mm512_add_epi64
      Src: /src/memcached/xxhash.h:3665,1
    - Dst: _mm512_stream_load_si512
      Src: /src/memcached/xxhash.h:3665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3644
    functionDepth: 1
    functionLinenumber: 3644
    functionLinenumberEnd: 3667
    functionName: XXH3_initCustomSecret_avx512
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm512_mask_set1_epi64
    - XXH_STATIC_ASSERT
    - _mm512_set1_epi64
    - _mm512_add_epi64
    - _mm512_stream_load_si512
    - XXH_ALIGN
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_avx512(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3683,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3684,1
    - Dst: _mm256_loadu_si256
      Src: /src/memcached/xxhash.h:3695,1
    - Dst: _mm256_loadu_si256
      Src: /src/memcached/xxhash.h:3697,1
    - Dst: _mm256_xor_si256
      Src: /src/memcached/xxhash.h:3699,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/memcached/xxhash.h:3701,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3701,1
    - Dst: _mm256_mul_epu32
      Src: /src/memcached/xxhash.h:3703,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/memcached/xxhash.h:3705,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3705,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3706,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3710
      start: 3678
    functionDepth: 1
    functionLinenumber: 3678
    functionLinenumberEnd: 3710
    functionName: XXH3_accumulate_512_avx2
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm256_shuffle_epi32
    - _mm256_xor_si256
    - _mm256_mul_epu32
    - XXH_ASSERT
    - _mm256_add_epi64
    - XXH_ALIGN
    - _MM_SHUFFLE
    - _mm256_loadu_si256
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_avx2( void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3715,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3716,1
    - Dst: _mm256_set1_epi32
      Src: /src/memcached/xxhash.h:3720,1
    - Dst: _mm256_srli_epi64
      Src: /src/memcached/xxhash.h:3726,1
    - Dst: _mm256_xor_si256
      Src: /src/memcached/xxhash.h:3727,1
    - Dst: _mm256_loadu_si256
      Src: /src/memcached/xxhash.h:3729,1
    - Dst: _mm256_xor_si256
      Src: /src/memcached/xxhash.h:3730,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/memcached/xxhash.h:3733,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3733,1
    - Dst: _mm256_mul_epu32
      Src: /src/memcached/xxhash.h:3734,1
    - Dst: _mm256_mul_epu32
      Src: /src/memcached/xxhash.h:3735,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3736,1
    - Dst: _mm256_slli_epi64
      Src: /src/memcached/xxhash.h:3736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3739
      start: 3712
    functionDepth: 1
    functionLinenumber: 3712
    functionLinenumberEnd: 3739
    functionName: XXH3_scrambleAcc_avx2
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm256_loadu_si256
    - _mm256_shuffle_epi32
    - _mm256_slli_epi64
    - _mm256_xor_si256
    - _mm256_mul_epu32
    - _mm256_set1_epi32
    - _mm256_add_epi64
    - XXH_ALIGN
    - _MM_SHUFFLE
    - _mm256_srli_epi64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_avx2(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3743,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3744,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3745,1
    - Dst: XXH_PREFETCH
      Src: /src/memcached/xxhash.h:3747,1
    - Dst: _mm256_set_epi64x
      Src: /src/memcached/xxhash.h:3748,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3750,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3751,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/memcached/xxhash.h:3759,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3763,1
    - Dst: _mm256_stream_load_si256
      Src: /src/memcached/xxhash.h:3763,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3764,1
    - Dst: _mm256_stream_load_si256
      Src: /src/memcached/xxhash.h:3764,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3765,1
    - Dst: _mm256_stream_load_si256
      Src: /src/memcached/xxhash.h:3765,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3766,1
    - Dst: _mm256_stream_load_si256
      Src: /src/memcached/xxhash.h:3766,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3767,1
    - Dst: _mm256_stream_load_si256
      Src: /src/memcached/xxhash.h:3767,1
    - Dst: _mm256_add_epi64
      Src: /src/memcached/xxhash.h:3768,1
    - Dst: _mm256_stream_load_si256
      Src: /src/memcached/xxhash.h:3768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3770
      start: 3741
    functionDepth: 1
    functionLinenumber: 3741
    functionLinenumberEnd: 3770
    functionName: XXH3_initCustomSecret_avx2
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - _mm256_stream_load_si256
    - _mm256_set_epi64x
    - XXH_COMPILER_GUARD
    - XXH_PREFETCH
    - _mm256_add_epi64
    - XXH_ALIGN
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_avx2(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3787,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3788,1
    - Dst: _mm_loadu_si128
      Src: /src/memcached/xxhash.h:3799,1
    - Dst: _mm_loadu_si128
      Src: /src/memcached/xxhash.h:3801,1
    - Dst: _mm_xor_si128
      Src: /src/memcached/xxhash.h:3803,1
    - Dst: _mm_shuffle_epi32
      Src: /src/memcached/xxhash.h:3805,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3805,1
    - Dst: _mm_mul_epu32
      Src: /src/memcached/xxhash.h:3807,1
    - Dst: _mm_shuffle_epi32
      Src: /src/memcached/xxhash.h:3809,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3809,1
    - Dst: _mm_add_epi64
      Src: /src/memcached/xxhash.h:3810,1
    - Dst: _mm_add_epi64
      Src: /src/memcached/xxhash.h:3812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3814
      start: 3781
    functionDepth: 1
    functionLinenumber: 3781
    functionLinenumberEnd: 3814
    functionName: XXH3_accumulate_512_sse2
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _MM_SHUFFLE
    - _mm_mul_epu32
    - _mm_loadu_si128
    - _mm_shuffle_epi32
    - _mm_add_epi64
    - XXH_ALIGN
    - _mm_xor_si128
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_sse2( void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3819,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3820,1
    - Dst: _mm_set1_epi32
      Src: /src/memcached/xxhash.h:3824,1
    - Dst: _mm_srli_epi64
      Src: /src/memcached/xxhash.h:3830,1
    - Dst: _mm_xor_si128
      Src: /src/memcached/xxhash.h:3831,1
    - Dst: _mm_loadu_si128
      Src: /src/memcached/xxhash.h:3833,1
    - Dst: _mm_xor_si128
      Src: /src/memcached/xxhash.h:3834,1
    - Dst: _mm_shuffle_epi32
      Src: /src/memcached/xxhash.h:3837,1
    - Dst: _MM_SHUFFLE
      Src: /src/memcached/xxhash.h:3837,1
    - Dst: _mm_mul_epu32
      Src: /src/memcached/xxhash.h:3838,1
    - Dst: _mm_mul_epu32
      Src: /src/memcached/xxhash.h:3839,1
    - Dst: _mm_add_epi64
      Src: /src/memcached/xxhash.h:3840,1
    - Dst: _mm_slli_epi64
      Src: /src/memcached/xxhash.h:3840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3816
    functionDepth: 1
    functionLinenumber: 3816
    functionLinenumberEnd: 3843
    functionName: XXH3_scrambleAcc_sse2
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _MM_SHUFFLE
    - _mm_srli_epi64
    - _mm_slli_epi64
    - _mm_mul_epu32
    - _mm_set1_epi32
    - _mm_loadu_si128
    - _mm_shuffle_epi32
    - _mm_add_epi64
    - XXH_ALIGN
    - _mm_xor_si128
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_sse2(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:3847,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3853,1
    - Dst: _mm_load_si128
      Src: /src/memcached/xxhash.h:3854,1
    - Dst: _mm_set_epi64x
      Src: /src/memcached/xxhash.h:3856,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3860,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3861,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/memcached/xxhash.h:3868,1
    - Dst: _mm_add_epi64
      Src: /src/memcached/xxhash.h:3872,1
    - Dst: _mm_castps_si128
      Src: /src/memcached/xxhash.h:3872,1
    - Dst: _mm_load_ps
      Src: /src/memcached/xxhash.h:3872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3874
      start: 3845
    functionDepth: 1
    functionLinenumber: 3845
    functionLinenumberEnd: 3874
    functionName: XXH3_initCustomSecret_sse2
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm_load_ps
    - XXH_STATIC_ASSERT
    - _mm_set_epi64x
    - XXH_COMPILER_GUARD
    - _mm_castps_si128
    - _mm_load_si128
    - _mm_add_epi64
    - XXH_ALIGN
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_sse2(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3885,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:3887,1
    - Dst: vld1q_u8
      Src: /src/memcached/xxhash.h:3895,1
    - Dst: vld1q_u8
      Src: /src/memcached/xxhash.h:3897,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/memcached/xxhash.h:3901,1
    - Dst: vextq_u64
      Src: /src/memcached/xxhash.h:3902,1
    - Dst: vaddq_u64
      Src: /src/memcached/xxhash.h:3903,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/memcached/xxhash.h:3905,1
    - Dst: veorq_u8
      Src: /src/memcached/xxhash.h:3905,1
    - Dst: XXH_SPLIT_IN_PLACE
      Src: /src/memcached/xxhash.h:3909,1
    - Dst: vmlal_u32
      Src: /src/memcached/xxhash.h:3911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3880
    functionDepth: 1
    functionLinenumber: 3880
    functionLinenumberEnd: 3915
    functionName: XXH3_accumulate_512_neon
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - vextq_u64
    - vaddq_u64
    - vreinterpretq_u64_u8
    - veorq_u8
    - XXH_SPLIT_IN_PLACE
    - XXH_ALIGN
    - vmlal_u32
    - vld1q_u8
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_neon( void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:3920,1
    - Dst: vdup_n_u32
      Src: /src/memcached/xxhash.h:3924,1
    - Dst: vshrq_n_u64
      Src: /src/memcached/xxhash.h:3930,1
    - Dst: veorq_u64
      Src: /src/memcached/xxhash.h:3931,1
    - Dst: vld1q_u8
      Src: /src/memcached/xxhash.h:3934,1
    - Dst: veorq_u64
      Src: /src/memcached/xxhash.h:3935,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/memcached/xxhash.h:3935,1
    - Dst: XXH_SPLIT_IN_PLACE
      Src: /src/memcached/xxhash.h:3942,1
    - Dst: vmull_u32
      Src: /src/memcached/xxhash.h:3961,1
    - Dst: vshlq_n_u64
      Src: /src/memcached/xxhash.h:3963,1
    - Dst: vmlal_u32
      Src: /src/memcached/xxhash.h:3965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3917
    functionDepth: 1
    functionLinenumber: 3917
    functionLinenumberEnd: 3968
    functionName: XXH3_scrambleAcc_neon
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - vmull_u32
    - vreinterpretq_u64_u8
    - vdup_n_u32
    - veorq_u64
    - XXH_SPLIT_IN_PLACE
    - vshlq_n_u64
    - vshrq_n_u64
    - vmlal_u32
    - vld1q_u8
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_neon(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_vec_loadu
      Src: /src/memcached/xxhash.h:3986,1
    - Dst: XXH_vec_loadu
      Src: /src/memcached/xxhash.h:3988,1
    - Dst: vec_rl
      Src: /src/memcached/xxhash.h:3991,1
    - Dst: XXH_vec_mulo
      Src: /src/memcached/xxhash.h:3993,1
    - Dst: vec_permi
      Src: /src/memcached/xxhash.h:3998,1
    - Dst: vec_xxpermdi
      Src: /src/memcached/xxhash.h:4000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4003
      start: 3974
    functionDepth: 2
    functionLinenumber: 3974
    functionLinenumberEnd: 4003
    functionName: XXH3_accumulate_512_vsx
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - vec_rl
    - XXH_vec_loadu
    - vec_xxpermdi
    - XXH_vec_mulo
    - vec_permi
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_vsx(  void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4008,1
    - Dst: XXH_vec_loadu
      Src: /src/memcached/xxhash.h:4023,1
    - Dst: XXH_vec_mule
      Src: /src/memcached/xxhash.h:4028,1
    - Dst: XXH_vec_mulo
      Src: /src/memcached/xxhash.h:4030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4033
      start: 4005
    functionDepth: 2
    functionLinenumber: 4005
    functionLinenumberEnd: 4033
    functionName: XXH3_scrambleAcc_vsx
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_vec_mulo
    - XXH_vec_loadu
    - XXH_vec_mule
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_vsx(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:4044,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4048,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4050,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4051,1
    - Dst: XXH_mult32to64
      Src: /src/memcached/xxhash.h:4053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 4039
    functionDepth: 1
    functionLinenumber: 4039
    functionLinenumberEnd: 4055
    functionName: XXH3_accumulate_512_scalar
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ALIGN
    - XXH_mult32to64
    - XXH_readLE64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_scalar(void* XXH_RESTRICT acc,\n
      \                    const void* XXH_RESTRICT input,\n                     const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:4060,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4063,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4065,1
    - Dst: XXH_xorshift64
      Src: /src/memcached/xxhash.h:4067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 4057
    functionDepth: 2
    functionLinenumber: 4057
    functionLinenumberEnd: 4072
    functionName: XXH3_scrambleAcc_scalar
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ALIGN
    - XXH_xorshift64
    - XXH_readLE64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_scalar(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:4083,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/memcached/xxhash.h:4114,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4120,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4131,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4132,1
    - Dst: XXH_writeLE64
      Src: /src/memcached/xxhash.h:4133,1
    - Dst: XXH_writeLE64
      Src: /src/memcached/xxhash.h:4134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4136
      start: 4074
    functionDepth: 2
    functionLinenumber: 4074
    functionLinenumberEnd: 4136
    functionName: XXH3_initCustomSecret_scalar
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_writeLE64
    - XXH_STATIC_ASSERT
    - XXH_COMPILER_GUARD
    - XXH_readLE64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_scalar(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mul128_fold64
      Src: /src/memcached/xxhash.h:4254,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4255,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - xxh_u64*
    - xxh_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4257
      start: 4251
    functionDepth: 3
    functionLinenumber: 4251
    functionLinenumberEnd: 4257
    functionName: XXH3_mix2Accs
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mul128_fold64
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_mix2Accs(const xxh_u64* XXH_RESTRICT acc, const
      xxh_u8* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mix2Accs
      Src: /src/memcached/xxhash.h:4266,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/memcached/xxhash.h:4279,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:4283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - start
    argTypes:
    - xxh_u64*
    - xxh_u8*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4284
      start: 4259
    functionDepth: 4
    functionLinenumber: 4259
    functionLinenumberEnd: 4284
    functionName: XXH3_mergeAccs
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mix2Accs
    - XXH_COMPILER_GUARD
    - XXH3_avalanche
    linkageType: ''
    returnType: XXH64_hash_t
    signature: XXH64_hash_t XXH3_mergeAccs(const xxh_u64* XXH_RESTRICT acc, const
      xxh_u8* XXH_RESTRICT secret, xxh_u64 start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:4295,1
    - Dst: XXH3_hashLong_internal_loop
      Src: /src/memcached/xxhash.h:4297,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:4300,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4303,1
    - Dst: XXH3_mergeAccs
      Src: /src/memcached/xxhash.h:4304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - f_acc512
    - f_scramble
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - XXH3_f_accumulate_512
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4289
    functionDepth: 5
    functionLinenumber: 4289
    functionLinenumberEnd: 4305
    functionName: XXH64_hash_t::XXH3_hashLong_64b_internal
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH_STATIC_ASSERT
    - XXH3_hashLong_internal_loop
    - XXH_ALIGN
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_hashLong_64b_internal(const void*
      XXH_RESTRICT input, size_t len,\n                           const void* XXH_RESTRICT
      secret, size_t secretSize,\n                           XXH3_f_accumulate_512
      f_acc512,\n                           XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/memcached/xxhash.h:4315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - xxh_u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4316
      start: 4310
    functionDepth: 6
    functionLinenumber: 4310
    functionLinenumberEnd: 4316
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSecret
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH64_hash_t\nXXH3_hashLong_64b_withSecret(const void*
      XXH_RESTRICT input, size_t len,\n                             XXH64_hash_t seed64,
      const xxh_u8* XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/memcached/xxhash.h:4330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - xxh_u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4325
    functionDepth: 6
    functionLinenumber: 4325
    functionLinenumberEnd: 4331
    functionName: XXH64_hash_t::XXH3_hashLong_64b_default
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH64_hash_t\nXXH3_hashLong_64b_default(const void*
      XXH_RESTRICT input, size_t len,\n                          XXH64_hash_t seed64,
      const xxh_u8* XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/memcached/xxhash.h:4352,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:4355,1
    - Dst: f_initSec
      Src: /src/memcached/xxhash.h:4356,1
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/memcached/xxhash.h:4357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - input
    - len
    - seed
    - f_acc512
    - f_scramble
    - f_initSec
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - XXH3_f_accumulate_512
    - XXH3_f_scrambleAcc
    - XXH3_f_initCustomSecret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4344
    functionDepth: 6
    functionLinenumber: 4344
    functionLinenumberEnd: 4360
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ALIGN
    - f_initSec
    - XXH64_hash_t::XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_hashLong_64b_withSeed_internal(const
      void* input, size_t len,\n                                    XXH64_hash_t seed,\n
      \                                   XXH3_f_accumulate_512 f_acc512,\n                                    XXH3_f_scrambleAcc
      f_scramble,\n                                    XXH3_f_initCustomSecret f_initSec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
      Src: /src/memcached/xxhash.h:4370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - input
    - len
    - seed
    - secret
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - xxh_u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4372
      start: 4365
    functionDepth: 7
    functionLinenumber: 4365
    functionLinenumberEnd: 4372
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSeed
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH64_hash_t\nXXH3_hashLong_64b_withSeed(const void*
      input, size_t len,\n                           XXH64_hash_t seed, const xxh_u8*
      secret, size_t secretLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4383,1
    - Dst: XXH64_hash_t::XXH3_len_0to16_64b
      Src: /src/memcached/xxhash.h:4392,1
    - Dst: XXH64_hash_t::XXH3_len_17to128_64b
      Src: /src/memcached/xxhash.h:4394,1
    - Dst: XXH64_hash_t::XXH3_len_129to240_64b
      Src: /src/memcached/xxhash.h:4396,1
    - Dst: f_hashLong
      Src: /src/memcached/xxhash.h:4397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    - f_hashLong
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    - XXH3_hashLong64_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4398
      start: 4378
    functionDepth: 5
    functionLinenumber: 4378
    functionLinenumberEnd: 4398
    functionName: XXH64_hash_t::XXH3_64bits_internal
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_len_0to16_64b
    - XXH64_hash_t::XXH3_len_17to128_64b
    - f_hashLong
    - XXH64_hash_t::XXH3_len_129to240_64b
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_64bits_internal(const void* XXH_RESTRICT
      input, size_t len,\n                     XXH64_hash_t seed64, const void* XXH_RESTRICT
      secret, size_t secretLen,\n                     XXH3_hashLong64_f f_hashLong)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/memcached/xxhash.h:4406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 6
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: XXH64_hash_t::XXH3_64bits
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH3_64bits(const void* input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/memcached/xxhash.h:4413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - secretSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4410
    functionDepth: 6
    functionLinenumber: 4410
    functionLinenumberEnd: 4414
    functionName: XXH64_hash_t::XXH3_64bits_withSecret
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH64_hash_t

      XXH3_64bits_withSecret(const void* input, size_t len, const void* secret, size_t
      secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/memcached/xxhash.h:4420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4421
      start: 4417
    functionDepth: 6
    functionLinenumber: 4417
    functionLinenumberEnd: 4421
    functionName: XXH64_hash_t::XXH3_64bits_withSeed
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH64_hash_t

      XXH3_64bits_withSeed(const void* input, size_t len, XXH64_hash_t seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4451,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4452,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4453,1
    - Dst: XXH_malloc
      Src: /src/memcached/xxhash.h:4455,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - align
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4475
      start: 4449
    functionDepth: 1
    functionLinenumber: 4449
    functionLinenumberEnd: 4475
    functionName: XXH_alignedMalloc
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_malloc
    - XXH_ASSERT
    linkageType: ''
    returnType: void
    signature: void * XXH_alignedMalloc(size_t s, size_t align)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_free
      Src: /src/memcached/xxhash.h:4488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4490
      start: 4480
    functionDepth: 1
    functionLinenumber: 4480
    functionLinenumberEnd: 4490
    functionName: XXH_alignedFree
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_free
    linkageType: ''
    returnType: void
    signature: void XXH_alignedFree(void* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_alignedMalloc
      Src: /src/memcached/xxhash.h:4494,1
    - Dst: XXH3_INITSTATE
      Src: /src/memcached/xxhash.h:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4492
    functionDepth: 2
    functionLinenumber: 4492
    functionLinenumberEnd: 4498
    functionName: XXH3_state_t* XXH3_createState(void)
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_INITSTATE
    - XXH_alignedMalloc
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_state_t* XXH3_createState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_alignedFree
      Src: /src/memcached/xxhash.h:4503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4505
      start: 4501
    functionDepth: 2
    functionLinenumber: 4501
    functionLinenumberEnd: 4505
    functionName: XXH_errorcode::XXH3_freeState
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_alignedFree
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst_state
    - src_state
    argTypes:
    - XXH3_state_t*
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4508
    functionDepth: 0
    functionLinenumber: 4508
    functionLinenumberEnd: 4512
    functionName: XXH3_copyState
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_copyState(XXH3_state_t* dst_state, const XXH3_state_t*
      src_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4521,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4522,1
    - Dst: memset
      Src: /src/memcached/xxhash.h:4524,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 4
    argNames:
    - statePtr
    - seed
    - secret
    - secretSize
    argTypes:
    - XXH3_state_t*
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4538
      start: 4514
    functionDepth: 1
    functionLinenumber: 4514
    functionLinenumberEnd: 4538
    functionName: XXH3_reset_internal
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memset
    - XXH_ASSERT
    linkageType: ''
    returnType: void
    signature: "void XXH3_reset_internal(XXH3_state_t* statePtr,\n                           XXH64_hash_t
      seed,\n                           const void* secret, size_t secretSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/memcached/xxhash.h:4545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4547
      start: 4541
    functionDepth: 2
    functionLinenumber: 4541
    functionLinenumberEnd: 4547
    functionName: XXH_errorcode::XXH3_64bits_reset
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset(XXH3_state_t* statePtr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/memcached/xxhash.h:4554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - statePtr
    - secret
    - secretSize
    argTypes:
    - XXH3_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4550
    functionDepth: 2
    functionLinenumber: 4550
    functionLinenumberEnd: 4558
    functionName: XXH_errorcode::XXH3_64bits_reset_withSecret
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset_withSecret(XXH3_state_t* statePtr, const void* secret, size_t
      secretSize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset
      Src: /src/memcached/xxhash.h:4565,1
    - Dst: XXH3_initCustomSecret
      Src: /src/memcached/xxhash.h:4566,1
    - Dst: XXH3_reset_internal
      Src: /src/memcached/xxhash.h:4567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - XXH3_state_t*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4561
    functionDepth: 3
    functionLinenumber: 4561
    functionLinenumberEnd: 4569
    functionName: XXH_errorcode::XXH3_64bits_reset_withSeed
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_initCustomSecret
    - XXH3_reset_internal
    - XXH_errorcode::XXH3_64bits_reset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4618,1
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:4621,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:4628,1
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:4636,1
    - Dst: XXH3_consumeStripes
      Src: /src/memcached/xxhash.h:4638,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4645,1
    - Dst: XXH3_consumeStripes
      Src: /src/memcached/xxhash.h:4651,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4659,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4661,1
    - Dst: XXH_memcpy
      Src: /src/memcached/xxhash.h:4664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - state
    - input
    - len
    - f_acc512
    - f_scramble
    argTypes:
    - XXH3_state_t*
    - xxh_u8*
    - size_t
    - XXH3_f_accumulate_512
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4669
      start: 4601
    functionDepth: 1
    functionLinenumber: 4601
    functionLinenumberEnd: 4669
    functionName: XXH_errorcode::XXH3_update
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_memcpy
    - XXH_ASSERT
    - XXH3_consumeStripes
    - memcpy
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH_errorcode\nXXH3_update(XXH3_state_t* state,\n
      \           const xxh_u8* input, size_t len,\n            XXH3_f_accumulate_512
      f_acc512,\n            XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_update
      Src: /src/memcached/xxhash.h:4675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - XXH3_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4677
      start: 4672
    functionDepth: 2
    functionLinenumber: 4672
    functionLinenumberEnd: 4677
    functionName: XXH_errorcode::XXH3_64bits_update
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_update(XXH3_state_t* state, const void* input, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4689,1
    - Dst: XXH3_consumeStripes
      Src: /src/memcached/xxhash.h:4693,1
    - Dst: XXH3_accumulate_512
      Src: /src/memcached/xxhash.h:4699,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4705,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4706,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4707,1
    - Dst: XXH3_accumulate_512
      Src: /src/memcached/xxhash.h:4708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - acc
    - state
    - secret
    argTypes:
    - XXH64_hash_t*
    - XXH3_state_t*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4712
      start: 4680
    functionDepth: 1
    functionLinenumber: 4680
    functionLinenumberEnd: 4712
    functionName: XXH3_digest_long
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - XXH3_consumeStripes
    - XXH3_accumulate_512
    - memcpy
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_digest_long (XXH64_hash_t* acc,\n                  const
      XXH3_state_t* state,\n                  const unsigned char* secret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:4719,1
    - Dst: XXH3_digest_long
      Src: /src/memcached/xxhash.h:4720,1
    - Dst: XXH3_mergeAccs
      Src: /src/memcached/xxhash.h:4721,1
    - Dst: XXH64_hash_t::XXH3_64bits_withSeed
      Src: /src/memcached/xxhash.h:4727,1
    - Dst: XXH64_hash_t::XXH3_64bits_withSecret
      Src: /src/memcached/xxhash.h:4728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4715
    functionDepth: 7
    functionLinenumber: 4715
    functionLinenumberEnd: 4730
    functionName: XXH64_hash_t::XXH3_64bits_digest
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH3_digest_long
    - XXH64_hash_t::XXH3_64bits_withSeed
    - XXH64_hash_t::XXH3_64bits_withSecret
    - XXH_ALIGN
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (const XXH3_state_t*
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4734
      start: 4733
    functionDepth: 0
    functionLinenumber: 4733
    functionLinenumberEnd: 4734
    functionName: XXH_MIN
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_MIN(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4739,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4741,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4744,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4751,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4752,1
    - Dst: XXH128_canonicalFromHash
      Src: /src/memcached/xxhash.h:4753,1
    - Dst: XXH128
      Src: /src/memcached/xxhash.h:4753,1
    - Dst: XXH_MIN
      Src: /src/memcached/xxhash.h:4758,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4760,1
    - Dst: XXH_MIN
      Src: /src/memcached/xxhash.h:4762,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4763,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4768,1
    - Dst: XXH128_canonicalFromHash
      Src: /src/memcached/xxhash.h:4772,1
    - Dst: XXH128
      Src: /src/memcached/xxhash.h:4773,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4773,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:4774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - secretBuffer
    - customSeed
    - customSeedSize
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4776
      start: 4736
    functionDepth: 1
    functionLinenumber: 4736
    functionLinenumberEnd: 4776
    functionName: XXH3_generateSecret
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128
    - XXH_MIN
    - XXH_ASSERT
    - XXH128_canonicalFromHash
    - XXH_readLE64
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_generateSecret(void* secretBuffer, const void*
      customSeed, size_t customSeedSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4800,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4801,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4802,1
    - Dst: XXH_rotl32
      Src: /src/memcached/xxhash.h:4813,1
    - Dst: XXH_swap32
      Src: /src/memcached/xxhash.h:4813,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:4814,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:4814,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:4815,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:4815,1
    - Dst: XXH64_avalanche
      Src: /src/memcached/xxhash.h:4819,1
    - Dst: XXH64_avalanche
      Src: /src/memcached/xxhash.h:4820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4796
    functionDepth: 1
    functionLinenumber: 4796
    functionLinenumberEnd: 4823
    functionName: XXH128_hash_t::XXH3_len_1to3_128b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH_swap32
    - XXH64_avalanche
    - XXH_rotl32
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH128_hash_t

      XXH3_len_1to3_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4828,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4829,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4830,1
    - Dst: XXH_swap32
      Src: /src/memcached/xxhash.h:4831,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:4832,1
    - Dst: XXH_readLE32
      Src: /src/memcached/xxhash.h:4833,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4835,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4835,1
    - Dst: XXH_mult64to128
      Src: /src/memcached/xxhash.h:4839,1
    - Dst: XXH_xorshift64
      Src: /src/memcached/xxhash.h:4844,1
    - Dst: XXH_xorshift64
      Src: /src/memcached/xxhash.h:4846,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:4847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4825
    functionDepth: 3
    functionLinenumber: 4825
    functionLinenumberEnd: 4850
    functionName: XXH128_hash_t::XXH3_len_4to8_128b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH3_avalanche
    - XXH_swap32
    - XXH_readLE64
    - XXH_mult64to128
    - XXH_xorshift64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH128_hash_t

      XXH3_len_4to8_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4855,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4856,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4857,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4858,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4858,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4859,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4859,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4860,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4861,1
    - Dst: XXH_mult64to128
      Src: /src/memcached/xxhash.h:4862,1
    - Dst: XXH_mult32to64
      Src: /src/memcached/xxhash.h:4883,1
    - Dst: XXH_mult32to64
      Src: /src/memcached/xxhash.h:4909,1
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:4912,1
    - Dst: XXH_mult64to128
      Src: /src/memcached/xxhash.h:4915,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:4918,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:4919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4922
      start: 4852
    functionDepth: 3
    functionLinenumber: 4852
    functionLinenumberEnd: 4922
    functionName: XXH128_hash_t::XXH3_len_9to16_128b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_avalanche
    - XXH_mult32to64
    - XXH_readLE64
    - XXH_swap64
    - XXH_mult64to128
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH128_hash_t

      XXH3_len_9to16_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4930,1
    - Dst: XXH128_hash_t::XXH3_len_9to16_128b
      Src: /src/memcached/xxhash.h:4931,1
    - Dst: XXH128_hash_t::XXH3_len_4to8_128b
      Src: /src/memcached/xxhash.h:4932,1
    - Dst: XXH128_hash_t::XXH3_len_1to3_128b
      Src: /src/memcached/xxhash.h:4933,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4935,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4935,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4936,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4936,1
    - Dst: XXH64_avalanche
      Src: /src/memcached/xxhash.h:4937,1
    - Dst: XXH64_avalanche
      Src: /src/memcached/xxhash.h:4938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4941
      start: 4927
    functionDepth: 4
    functionLinenumber: 4927
    functionLinenumberEnd: 4941
    functionName: XXH128_hash_t::XXH3_len_0to16_128b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_len_4to8_128b
    - XXH64_avalanche
    - XXH128_hash_t::XXH3_len_9to16_128b
    - XXH_readLE64
    - XXH128_hash_t::XXH3_len_1to3_128b
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: 'XXH_FORCE_INLINE XXH128_hash_t

      XXH3_len_0to16_128b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_hash_t
      seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:4950,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4951,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4951,1
    - Dst: XXH3_mix16B
      Src: /src/memcached/xxhash.h:4952,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4953,1
    - Dst: XXH_readLE64
      Src: /src/memcached/xxhash.h:4953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - acc
    - input_1
    - input_2
    - secret
    - seed
    argTypes:
    - XXH128_hash_t
    - xxh_u8*
    - xxh_u8*
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4955
      start: 4946
    functionDepth: 4
    functionLinenumber: 4946
    functionLinenumberEnd: 4955
    functionName: XXH128_hash_t::XXH128_mix32B
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mix16B
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH128_mix32B(XXH128_hash_t acc, const
      xxh_u8* input_1, const xxh_u8* input_2,\n              const xxh_u8* secret,
      XXH64_hash_t seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4963,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4964,1
    - Dst: XXH128_hash_t::XXH128_mix32B
      Src: /src/memcached/xxhash.h:4972,1
    - Dst: XXH128_hash_t::XXH128_mix32B
      Src: /src/memcached/xxhash.h:4974,1
    - Dst: XXH128_hash_t::XXH128_mix32B
      Src: /src/memcached/xxhash.h:4976,1
    - Dst: XXH128_hash_t::XXH128_mix32B
      Src: /src/memcached/xxhash.h:4978,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:4984,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:4985,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4989
      start: 4958
    functionDepth: 5
    functionLinenumber: 4958
    functionLinenumberEnd: 4989
    functionName: XXH128_hash_t::XXH3_len_17to128_128b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_avalanche
    - XXH128_hash_t::XXH128_mix32B
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_len_17to128_128b(const xxh_u8*
      XXH_RESTRICT input, size_t len,\n                      const xxh_u8* XXH_RESTRICT
      secret, size_t secretSize,\n                      XXH64_hash_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4996,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:4997,1
    - Dst: XXH128_hash_t::XXH128_mix32B
      Src: /src/memcached/xxhash.h:5005,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:5011,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:5012,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:5013,1
    - Dst: XXH128_hash_t::XXH128_mix32B
      Src: /src/memcached/xxhash.h:5015,1
    - Dst: XXH128_hash_t::XXH128_mix32B
      Src: /src/memcached/xxhash.h:5022,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:5033,1
    - Dst: XXH3_avalanche
      Src: /src/memcached/xxhash.h:5034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 4991
    functionDepth: 5
    functionLinenumber: 4991
    functionLinenumberEnd: 5038
    functionName: XXH128_hash_t::XXH3_len_129to240_128b
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_avalanche
    - XXH128_hash_t::XXH128_mix32B
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH128_hash_t\nXXH3_len_129to240_128b(const xxh_u8*
      XXH_RESTRICT input, size_t len,\n                       const xxh_u8* XXH_RESTRICT
      secret, size_t secretSize,\n                       XXH64_hash_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:5046,1
    - Dst: XXH3_hashLong_internal_loop
      Src: /src/memcached/xxhash.h:5048,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:5051,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:5052,1
    - Dst: XXH3_mergeAccs
      Src: /src/memcached/xxhash.h:5054,1
    - Dst: XXH3_mergeAccs
      Src: /src/memcached/xxhash.h:5057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - f_acc512
    - f_scramble
    argTypes:
    - void*
    - size_t
    - xxh_u8*
    - size_t
    - XXH3_f_accumulate_512
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5063
      start: 5040
    functionDepth: 5
    functionLinenumber: 5040
    functionLinenumberEnd: 5063
    functionName: XXH128_hash_t::XXH3_hashLong_128b_internal
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH_STATIC_ASSERT
    - XXH3_hashLong_internal_loop
    - XXH_ALIGN
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_hashLong_128b_internal(const
      void* XXH_RESTRICT input, size_t len,\n                            const xxh_u8*
      XXH_RESTRICT secret, size_t secretSize,\n                            XXH3_f_accumulate_512
      f_acc512,\n                            XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/memcached/xxhash.h:5074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5076
      start: 5068
    functionDepth: 6
    functionLinenumber: 5068
    functionLinenumberEnd: 5076
    functionName: XXH128_hash_t::XXH3_hashLong_128b_default
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH128_hash_t\nXXH3_hashLong_128b_default(const void*
      XXH_RESTRICT input, size_t len,\n                           XXH64_hash_t seed64,\n
      \                          const void* XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/memcached/xxhash.h:5087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5089
      start: 5081
    functionDepth: 6
    functionLinenumber: 5081
    functionLinenumberEnd: 5089
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSecret
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH128_hash_t\nXXH3_hashLong_128b_withSecret(const void*
      XXH_RESTRICT input, size_t len,\n                              XXH64_hash_t
      seed64,\n                              const void* XXH_RESTRICT secret, size_t
      secretLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/memcached/xxhash.h:5099,1
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:5102,1
    - Dst: f_initSec
      Src: /src/memcached/xxhash.h:5103,1
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/memcached/xxhash.h:5104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - f_acc512
    - f_scramble
    - f_initSec
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - XXH3_f_accumulate_512
    - XXH3_f_scrambleAcc
    - XXH3_f_initCustomSecret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5107
      start: 5091
    functionDepth: 6
    functionLinenumber: 5091
    functionLinenumberEnd: 5107
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ALIGN
    - f_initSec
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_hashLong_128b_withSeed_internal(const
      void* XXH_RESTRICT input, size_t len,\n                                XXH64_hash_t
      seed64,\n                                XXH3_f_accumulate_512 f_acc512,\n                                XXH3_f_scrambleAcc
      f_scramble,\n                                XXH3_f_initCustomSecret f_initSec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
      Src: /src/memcached/xxhash.h:5117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - input
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5119
      start: 5112
    functionDepth: 7
    functionLinenumber: 5112
    functionLinenumberEnd: 5119
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSeed
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH128_hash_t\nXXH3_hashLong_128b_withSeed(const void*
      input, size_t len,\n                            XXH64_hash_t seed64, const void*
      XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:5129,1
    - Dst: XXH128_hash_t::XXH3_len_0to16_128b
      Src: /src/memcached/xxhash.h:5137,1
    - Dst: XXH128_hash_t::XXH3_len_17to128_128b
      Src: /src/memcached/xxhash.h:5139,1
    - Dst: XXH128_hash_t::XXH3_len_129to240_128b
      Src: /src/memcached/xxhash.h:5141,1
    - Dst: f_hl128
      Src: /src/memcached/xxhash.h:5142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - input
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    - f_hl128
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    - XXH3_hashLong128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5143
      start: 5124
    functionDepth: 6
    functionLinenumber: 5124
    functionLinenumberEnd: 5143
    functionName: XXH128_hash_t::XXH3_128bits_internal
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_len_0to16_128b
    - XXH128_hash_t::XXH3_len_129to240_128b
    - XXH128_hash_t::XXH3_len_17to128_128b
    - f_hl128
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_128bits_internal(const void*
      input, size_t len,\n                      XXH64_hash_t seed64, const void* XXH_RESTRICT
      secret, size_t secretLen,\n                      XXH3_hashLong128_f f_hl128)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/memcached/xxhash.h:5151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5154
      start: 5149
    functionDepth: 7
    functionLinenumber: 5149
    functionLinenumberEnd: 5154
    functionName: XXH128_hash_t::XXH3_128bits
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_hash_t XXH3_128bits(const void* input, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/memcached/xxhash.h:5160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - secretSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5163
      start: 5157
    functionDepth: 7
    functionLinenumber: 5157
    functionLinenumberEnd: 5163
    functionName: XXH128_hash_t::XXH3_128bits_withSecret
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH3_128bits_withSecret(const void* input, size_t len, const void* secret, size_t
      secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/memcached/xxhash.h:5169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5172
      start: 5166
    functionDepth: 7
    functionLinenumber: 5166
    functionLinenumberEnd: 5172
    functionName: XXH128_hash_t::XXH3_128bits_withSeed
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH3_128bits_withSeed(const void* input, size_t len, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_withSeed
      Src: /src/memcached/xxhash.h:5178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5179
      start: 5175
    functionDepth: 8
    functionLinenumber: 5175
    functionLinenumberEnd: 5179
    functionName: XXH128_hash_t::XXH128
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_withSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH128(const void* input, size_t len, XXH64_hash_t seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/memcached/xxhash.h:5194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5196
      start: 5190
    functionDepth: 2
    functionLinenumber: 5190
    functionLinenumberEnd: 5196
    functionName: XXH_errorcode::XXH3_128bits_reset
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset(XXH3_state_t* statePtr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/memcached/xxhash.h:5203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - statePtr
    - secret
    - secretSize
    argTypes:
    - XXH3_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5207
      start: 5199
    functionDepth: 2
    functionLinenumber: 5199
    functionLinenumberEnd: 5207
    functionName: XXH_errorcode::XXH3_128bits_reset_withSecret
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSecret(XXH3_state_t* statePtr, const void* secret, size_t
      secretSize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_128bits_reset
      Src: /src/memcached/xxhash.h:5214,1
    - Dst: XXH3_initCustomSecret
      Src: /src/memcached/xxhash.h:5215,1
    - Dst: XXH3_reset_internal
      Src: /src/memcached/xxhash.h:5216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - XXH3_state_t*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5218
      start: 5210
    functionDepth: 3
    functionLinenumber: 5210
    functionLinenumberEnd: 5218
    functionName: XXH_errorcode::XXH3_128bits_reset_withSeed
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_initCustomSecret
    - XXH3_reset_internal
    - XXH_errorcode::XXH3_128bits_reset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_update
      Src: /src/memcached/xxhash.h:5224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - XXH3_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5226
      start: 5221
    functionDepth: 2
    functionLinenumber: 5221
    functionLinenumberEnd: 5226
    functionName: XXH_errorcode::XXH3_128bits_update
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_update(XXH3_state_t* state, const void* input, size_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/memcached/xxhash.h:5233,1
    - Dst: XXH3_digest_long
      Src: /src/memcached/xxhash.h:5234,1
    - Dst: XXH_ASSERT
      Src: /src/memcached/xxhash.h:5235,1
    - Dst: XXH3_mergeAccs
      Src: /src/memcached/xxhash.h:5237,1
    - Dst: XXH3_mergeAccs
      Src: /src/memcached/xxhash.h:5240,1
    - Dst: XXH128_hash_t::XXH3_128bits_withSeed
      Src: /src/memcached/xxhash.h:5249,1
    - Dst: XXH128_hash_t::XXH3_128bits_withSecret
      Src: /src/memcached/xxhash.h:5250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5252
      start: 5229
    functionDepth: 8
    functionLinenumber: 5229
    functionLinenumberEnd: 5252
    functionName: XXH128_hash_t::XXH3_128bits_digest
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH3_digest_long
    - XXH_ASSERT
    - XXH128_hash_t::XXH3_128bits_withSecret
    - XXH_ALIGN
    - XXH128_hash_t::XXH3_128bits_withSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_digest (const XXH3_state_t*
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/memcached/xxhash.h:5263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - XXH128_hash_t
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5264
      start: 5260
    functionDepth: 0
    functionLinenumber: 5260
    functionLinenumberEnd: 5264
    functionName: XXH128_isEqual
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h128_1
    - h128_2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5279
      start: 5271
    functionDepth: 0
    functionLinenumber: 5271
    functionLinenumberEnd: 5279
    functionName: XXH128_cmp
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_cmp(const void* h128_1, const void* h128_2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/memcached/xxhash.h:5287,1
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:5289,1
    - Dst: XXH_swap64
      Src: /src/memcached/xxhash.h:5290,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:5292,1
    - Dst: memcpy
      Src: /src/memcached/xxhash.h:5293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - hash
    argTypes:
    - XXH128_canonical_t*
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5294
      start: 5284
    functionDepth: 1
    functionLinenumber: 5284
    functionLinenumberEnd: 5294
    functionName: XXH128_canonicalFromHash
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 1
    functionsReached:
    - XXH_STATIC_ASSERT
    - memcpy
    - XXH_swap64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_canonicalFromHash(XXH128_canonical_t* dst, XXH128_hash_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE64
      Src: /src/memcached/xxhash.h:5301,1
    - Dst: XXH_readBE64
      Src: /src/memcached/xxhash.h:5302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - XXH128_canonical_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5304
      start: 5297
    functionDepth: 1
    functionLinenumber: 5297
    functionLinenumberEnd: 5304
    functionName: XXH128_hash_t::XXH128_hashFromCanonical
    functionSourceFile: /src/memcached/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readBE64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH128_hashFromCanonical(const XXH128_canonical_t* src)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/restart.c:34,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:36,1
    - Dst: abort
      Src: /src/memcached/restart.c:37,1
    - Dst: safe_strcpy
      Src: /src/memcached/restart.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - tag
    - ccb
    - scb
    - data
    argTypes:
    - char*
    - restart_check_cb
    - restart_save_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: restart_register
    functionSourceFile: /src/memcached/restart.c
    functionUses: 0
    functionsReached:
    - safe_strcpy
    - fprintf
    - abort
    - calloc
    linkageType: ''
    returnType: void
    signature: void restart_register(const char *tag, restart_check_cb ccb, restart_save_cb
      scb, void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/restart.c:74,1
    - Dst: calloc
      Src: /src/memcached/restart.c:76,1
    - Dst: strlen
      Src: /src/memcached/restart.c:76,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:79,1
    - Dst: abort
      Src: /src/memcached/restart.c:80,1
    - Dst: memcpy
      Src: /src/memcached/restart.c:82,1
    - Dst: memcpy
      Src: /src/memcached/restart.c:83,1
    - Dst: strlen
      Src: /src/memcached/restart.c:83,1
    - Dst: fopen
      Src: /src/memcached/restart.c:85,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:87,1
    - Dst: free
      Src: /src/memcached/restart.c:88,1
    - Dst: restart_get_kv
      Src: /src/memcached/restart.c:98,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:101,1
    - Dst: abort
      Src: /src/memcached/restart.c:103,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:106,1
    - Dst: abort
      Src: /src/memcached/restart.c:107,1
    - Dst: restart_data_cb*::ccb
      Src: /src/memcached/restart.c:114,1
    - Dst: free
      Src: /src/memcached/restart.c:121,1
    - Dst: fclose
      Src: /src/memcached/restart.c:123,1
    - Dst: unlink
      Src: /src/memcached/restart.c:125,1
    - Dst: free
      Src: /src/memcached/restart.c:126,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 134
    functionName: restart_check
    functionSourceFile: /src/memcached/restart.c
    functionUses: 0
    functionsReached:
    - fopen
    - fprintf
    - free
    - restart_get_kv
    - fclose
    - strlen
    - abort
    - restart_data_cb*::ccb
    - unlink
    - calloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int restart_check(const char *file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/restart.c:150,1
    - Dst: getline
      Src: /src/memcached/restart.c:154,1
    - Dst: strcmp
      Src: /src/memcached/restart.c:168,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:174,1
    - Dst: free
      Src: /src/memcached/restart.c:175,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:202,1
    - Dst: free
      Src: /src/memcached/restart.c:203,1
    - Dst: free
      Src: /src/memcached/restart.c:209,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - ctx
    - key
    - val
    argTypes:
    - void*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 213
    functionName: restart_get_kv
    functionSourceFile: /src/memcached/restart.c
    functionUses: 2
    functionsReached:
    - getline
    - free
    - fprintf
    - strcmp
    linkageType: ''
    returnType: enum restart_get_kv_ret
    signature: enum restart_get_kv_ret restart_get_kv(void *ctx, char **key, char
      **val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/restart.c:222,1
    - Dst: strlen
      Src: /src/memcached/restart.c:224,1
    - Dst: calloc
      Src: /src/memcached/restart.c:225,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:227,1
    - Dst: memcpy
      Src: /src/memcached/restart.c:230,1
    - Dst: memcpy
      Src: /src/memcached/restart.c:231,1
    - Dst: umask
      Src: /src/memcached/restart.c:235,1
    - Dst: fopen
      Src: /src/memcached/restart.c:236,1
    - Dst: umask
      Src: /src/memcached/restart.c:237,1
    - Dst: free
      Src: /src/memcached/restart.c:240,1
    - Dst: perror
      Src: /src/memcached/restart.c:241,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:250,1
    - Dst: restart_data_cb*::scb
      Src: /src/memcached/restart.c:251,1
    - Dst: fclose
      Src: /src/memcached/restart.c:252,1
    - Dst: free
      Src: /src/memcached/restart.c:253,1
    - Dst: fclose
      Src: /src/memcached/restart.c:260,1
    - Dst: free
      Src: /src/memcached/restart.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 264
    functionName: restart_save
    functionSourceFile: /src/memcached/restart.c
    functionUses: 0
    functionsReached:
    - umask
    - fprintf
    - fopen
    - free
    - fclose
    - restart_data_cb*::scb
    - strlen
    - perror
    - calloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int restart_save(const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/memcached/restart.c:275,1
    - Dst: vsnprintf
      Src: /src/memcached/restart.c:276,1
    - Dst: va_end
      Src: /src/memcached/restart.c:277,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:282,1
    - Dst: abort
      Src: /src/memcached/restart.c:284,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - key
    - fmt
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 289
    functionName: restart_set_kv
    functionSourceFile: /src/memcached/restart.c
    functionUses: 1
    functionsReached:
    - fprintf
    - va_end
    - va_start
    - vsnprintf
    - abort
    linkageType: ''
    returnType: void
    signature: void restart_set_kv(void *ctx, const char *key, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/memcached/restart.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: _find_pagesize
    functionSourceFile: /src/memcached/restart.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: long
    signature: long _find_pagesize(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _find_pagesize
      Src: /src/memcached/restart.c:303,1
    - Dst: strdup
      Src: /src/memcached/restart.c:304,1
    - Dst: open
      Src: /src/memcached/restart.c:305,1
    - Dst: perror
      Src: /src/memcached/restart.c:307,1
    - Dst: abort
      Src: /src/memcached/restart.c:308,1
    - Dst: ftruncate
      Src: /src/memcached/restart.c:310,1
    - Dst: perror
      Src: /src/memcached/restart.c:311,1
    - Dst: abort
      Src: /src/memcached/restart.c:312,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:318,1
    - Dst: abort
      Src: /src/memcached/restart.c:319,1
    - Dst: mmap
      Src: /src/memcached/restart.c:321,1
    - Dst: perror
      Src: /src/memcached/restart.c:323,1
    - Dst: abort
      Src: /src/memcached/restart.c:324,1
    - Dst: restart_check
      Src: /src/memcached/restart.c:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - limit
    - file
    - mem_base
    argTypes:
    - size_t
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 334
    functionName: restart_mmap_open
    functionSourceFile: /src/memcached/restart.c
    functionUses: 0
    functionsReached:
    - restart_check
    - fprintf
    - open
    - ftruncate
    - abort
    - _find_pagesize
    - perror
    - strdup
    - mmap
    linkageType: ''
    returnType: bool
    signature: bool restart_mmap_open(const size_t limit, const char *file, void **mem_base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: msync
      Src: /src/memcached/restart.c:338,1
    - Dst: restart_save
      Src: /src/memcached/restart.c:340,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:341,1
    - Dst: munmap
      Src: /src/memcached/restart.c:344,1
    - Dst: perror
      Src: /src/memcached/restart.c:345,1
    - Dst: close
      Src: /src/memcached/restart.c:346,1
    - Dst: perror
      Src: /src/memcached/restart.c:347,1
    - Dst: free
      Src: /src/memcached/restart.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 351
    functionName: restart_mmap_close
    functionSourceFile: /src/memcached/restart.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    - msync
    - perror
    - close
    - munmap
    - restart_save
    linkageType: ''
    returnType: void
    signature: void restart_mmap_close(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/memcached/restart.c:362,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:364,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:365,1
    - Dst: slabs_fixup
      Src: /src/memcached/restart.c:373,1
    - Dst: assert
      Src: /src/memcached/restart.c:378,1
    - Dst: assert
      Src: /src/memcached/restart.c:379,1
    - Dst: do_item_link_fixup
      Src: /src/memcached/restart.c:397,1
    - Dst: ITEM_schunk
      Src: /src/memcached/restart.c:403,1
    - Dst: slabs_size
      Src: /src/memcached/restart.c:408,1
    - Dst: gettimeofday
      Src: /src/memcached/restart.c:440,1
    - Dst: fprintf
      Src: /src/memcached/restart.c:441,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 1
    argNames:
    - orig_addr
    argTypes:
    - void*
    assertStmts:
    - condition: (page_remain % page_size == 0)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/memcached/restart.c
    - condition: (page_remain == page_size)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/memcached/restart.c
    constantsTouched: []
    func_position:
      end: 445
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 445
    functionName: restart_fixup
    functionSourceFile: /src/memcached/restart.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - fprintf
    - gettimeofday
    - do_item_link_fixup
    - slabs_fixup
    - assert
    - slabs_size
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int restart_fixup(void *orig_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: L_DEBUG
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L_DEBUG(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/memcached/logger.c:55,1
    - Dst: fprintf
      Src: /src/memcached/logger.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: _logger_log_text
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - fprintf
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void _logger_log_text(logentry *e, const entry_details *d, const void
      *entry, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_clsid
      Src: /src/memcached/logger.c:71,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:72,1
    - Dst: ITEM_key
      Src: /src/memcached/logger.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: _logger_log_evictions
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - ITEM_clsid
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_evictions(logentry *e, const entry_details *d, const
      void *entry, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/memcached/logger.c:78,1
    - Dst: ITEM_clsid
      Src: /src/memcached/logger.c:85,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:87,1
    - Dst: ITEM_key
      Src: /src/memcached/logger.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: _logger_log_ext_write
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - va_arg
    - ITEM_clsid
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_ext_write(logentry *e, const entry_details *d, const
      void *entry, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/memcached/logger.c:96,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:97,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:98,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:99,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:100,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:101,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: _logger_log_item_get
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - va_arg
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_item_get(logentry *e, const entry_details *d, const
      void *entry, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/memcached/logger.c:114,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:115,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:116,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:117,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:118,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:119,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:120,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:121,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 137
    functionName: _logger_log_item_store
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - va_arg
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_item_store(logentry *e, const entry_details *d, const
      void *entry, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/memcached/logger.c:141,1
    - Dst: ITEM_clsid
      Src: /src/memcached/logger.c:146,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:147,1
    - Dst: ITEM_key
      Src: /src/memcached/logger.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: _logger_log_item_deleted
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - va_arg
    - ITEM_clsid
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_item_deleted(logentry *e, const entry_details *d,
      const void *entry, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/memcached/logger.c:152,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:153,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:154,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:155,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:156,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: _logger_log_conn_event
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - va_arg
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_conn_event(logentry *e, const entry_details *d, const
      void *entry, va_list ap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/logger.c:173,1
    - Dst: inet_ntop
      Src: /src/memcached/logger.c:178,1
    - Dst: ntohs
      Src: /src/memcached/logger.c:180,1
    - Dst: inet_ntop
      Src: /src/memcached/logger.c:183,1
    - Dst: ntohs
      Src: /src/memcached/logger.c:185,1
    - Dst: strncpy
      Src: /src/memcached/logger.c:191,1
    - Dst: strlen
      Src: /src/memcached/logger.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - addr
    - rip
    - riplen
    - rport
    argTypes:
    - struct sockaddr_in6*
    - char*
    - size_t
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: _logger_util_addr_endpoint
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - strncpy
    - strlen
    - ntohs
    - memset
    linkageType: ''
    returnType: int
    signature: "int _logger_util_addr_endpoint(struct sockaddr_in6 *addr, char *rip,\n
      \       size_t riplen, unsigned short *rport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/memcached/logger.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: _logger_parse_text
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_text(logentry *e, char *scratch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uriencode
      Src: /src/memcached/logger.c:225,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: _logger_parse_ise
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - uriencode
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_ise(logentry *e, char *scratch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uriencode
      Src: /src/memcached/logger.c:241,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 248
    functionName: _logger_parse_ige
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - uriencode
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_ige(logentry *e, char *scratch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uriencode
      Src: /src/memcached/logger.c:254,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 263
    functionName: _logger_parse_ee
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - uriencode
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_ee(logentry *e, char *scratch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uriencode
      Src: /src/memcached/logger.c:272,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 283
    functionName: _logger_parse_ide
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - uriencode
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_ide(logentry *e, char *scratch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uriencode
      Src: /src/memcached/logger.c:290,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: _logger_parse_extw
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - uriencode
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_extw(logentry *e, char *scratch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _logger_util_addr_endpoint
      Src: /src/memcached/logger.c:308,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 316
    functionName: _logger_parse_cne
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - snprintf
    - _logger_util_addr_endpoint
    linkageType: ''
    returnType: int
    signature: int _logger_parse_cne(logentry *e, char *scratch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _logger_util_addr_endpoint
      Src: /src/memcached/logger.c:326,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 335
    functionName: _logger_parse_cce
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - snprintf
    - _logger_util_addr_endpoint
    linkageType: ''
    returnType: int
    signature: int _logger_parse_cce(logentry *e, char *scratch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/memcached/logger.c:343,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:344,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:345,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:346,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:347,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:348,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:349,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:350,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:351,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:352,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:353,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:354,1
    - Dst: strlen
      Src: /src/memcached/logger.c:365,1
    - Dst: strlen
      Src: /src/memcached/logger.c:366,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:385,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:387,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:389,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 393
    functionName: _logger_log_proxy_req
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - va_arg
    - strlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_proxy_req(logentry *e, const entry_details *d, const
      void *entry, va_list ap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/memcached/logger.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: _logger_parse_prx_req
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_prx_req(logentry *e, char *scratch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/memcached/logger.c:424,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:425,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:426,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:427,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:428,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:429,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:430,1
    - Dst: va_arg
      Src: /src/memcached/logger.c:431,1
    - Dst: strlen
      Src: /src/memcached/logger.c:436,1
    - Dst: strlen
      Src: /src/memcached/logger.c:438,1
    - Dst: strlen
      Src: /src/memcached/logger.c:439,1
    - Dst: strlen
      Src: /src/memcached/logger.c:443,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:452,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:454,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:456,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:458,1
    - Dst: memcpy
      Src: /src/memcached/logger.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - e
    - d
    - entry
    - ap
    argTypes:
    - logentry*
    - entry_details*
    - void*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 464
    functionName: _logger_log_proxy_errbe
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - va_arg
    - strlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _logger_log_proxy_errbe(logentry *e, const entry_details *d, const
      void *entry, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uriencode
      Src: /src/memcached/logger.c:481,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:483,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - e
    - scratch
    argTypes:
    - logentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 497
    functionName: _logger_parse_prx_errbe
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - uriencode
    - snprintf
    linkageType: ''
    returnType: int
    signature: int _logger_parse_prx_errbe(logentry *e, char *scratch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/memcached/logger.c:569,1
    - Dst: atomic_inc_64_nv
      Src: /src/memcached/logger.c:571,1
    - Dst: mutex_lock
      Src: /src/memcached/logger.c:573,1
    - Dst: mutex_unlock
      Src: /src/memcached/logger.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 578
    functionName: logger_get_gid
    functionSourceFile: /src/memcached/logger.c
    functionUses: 1
    functionsReached:
    - __sync_add_and_fetch
    - mutex_unlock
    - mutex_lock
    - atomic_inc_64_nv
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t logger_get_gid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/memcached/logger.c:582,1
    - Dst: atomic_add_64
      Src: /src/memcached/logger.c:584,1
    - Dst: mutex_lock
      Src: /src/memcached/logger.c:586,1
    - Dst: mutex_unlock
      Src: /src/memcached/logger.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - gid
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 590
    functionName: logger_set_gid
    functionSourceFile: /src/memcached/logger.c
    functionUses: 1
    functionsReached:
    - __sync_add_and_fetch
    - mutex_lock
    - atomic_add_64
    - mutex_unlock
    linkageType: ''
    returnType: void
    signature: void logger_set_gid(uint64_t gid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:597,1
    - Dst: assert
      Src: /src/memcached/logger.c:598,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - l
    argTypes:
    - logger*
    assertStmts:
    - condition: (l != logger_stack_head)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/memcached/logger.c
    constantsTouched: []
    func_position:
      end: 608
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 608
    functionName: logger_link_q
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - assert
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void logger_link_q(logger *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:647,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 652
    functionName: logger_set_flags
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void logger_set_flags(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/logger.c:659,1
    - Dst: entry_details*::parse_cb
      Src: /src/memcached/logger.c:660,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - e
    - ls
    - scratch
    - scratch_len
    argTypes:
    - logentry*
    - struct logger_stats*
    - char*
    - int*
    assertStmts:
    - condition: (d->parse_cb != NULL)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/memcached/logger.c
    constantsTouched: []
    func_position:
      end: 670
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 670
    functionName: logger_thread_parse_entry
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - entry_details*::parse_cb
    - assert
    - L_DEBUG
    linkageType: ''
    returnType: enum logger_parse_entry_ret
    signature: "enum logger_parse_entry_ret logger_thread_parse_entry(logentry *e,
      struct logger_stats *ls,\n        char *scratch, int *scratch_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_request
      Src: /src/memcached/logger.c:687,1
    - Dst: logger_thread_poll_watchers
      Src: /src/memcached/logger.c:688,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:689,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:695,1
    - Dst: snprintf
      Src: /src/memcached/logger.c:702,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:704,1
    - Dst: bipbuf_push
      Src: /src/memcached/logger.c:709,1
    - Dst: bipbuf_offer
      Src: /src/memcached/logger.c:713,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - e
    - ls
    - scratch
    - scratch_len
    argTypes:
    - logentry*
    - struct logger_stats*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 716
    functionName: logger_thread_write_entry
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - bipbuf_request
    - bipbuf_push
    - logger_thread_poll_watchers
    - snprintf
    - L_DEBUG
    - bipbuf_offer
    linkageType: ''
    returnType: void
    signature: "void logger_thread_write_entry(logentry *e, struct logger_stats *ls,\n
      \       char *scratch, int scratch_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:724,1
    - Dst: sidethread_conn_close
      Src: /src/memcached/logger.c:726,1
    - Dst: bipbuf_free
      Src: /src/memcached/logger.c:728,1
    - Dst: free
      Src: /src/memcached/logger.c:729,1
    - Dst: logger_set_flags
      Src: /src/memcached/logger.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - logger_watcher*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 731
    functionName: logger_thread_close_watcher
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - free
    - bipbuf_free
    - logger_set_flags
    - sidethread_conn_close
    - L_DEBUG
    linkageType: ''
    returnType: void
    signature: void logger_thread_close_watcher(logger_watcher *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:742,1
    - Dst: bipbuf_peek_all
      Src: /src/memcached/logger.c:743,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:744,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:749,1
    - Dst: logger_thread_parse_entry
      Src: /src/memcached/logger.c:756,1
    - Dst: fprintf
      Src: /src/memcached/logger.c:759,1
    - Dst: logger_thread_write_entry
      Src: /src/memcached/logger.c:761,1
    - Dst: assert
      Src: /src/memcached/logger.c:765,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:767,1
    - Dst: bipbuf_poll
      Src: /src/memcached/logger.c:768,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:773,1
    - Dst: fprintf
      Src: /src/memcached/logger.c:775,1
    - Dst: assert
      Src: /src/memcached/logger.c:776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - l
    - ls
    argTypes:
    - logger*
    - struct logger_stats*
    assertStmts:
    - condition: (pos <= size)
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/memcached/logger.c
    - condition: (0)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/memcached/logger.c
    constantsTouched: []
    func_position:
      end: 779
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 779
    functionName: logger_thread_read
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - fprintf
    - logger_thread_write_entry
    - bipbuf_poll
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - logger_thread_parse_entry
    - assert
    - bipbuf_peek_all
    - L_DEBUG
    linkageType: ''
    returnType: int
    signature: int logger_thread_read(logger *l, struct logger_stats *ls)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_peek_all
      Src: /src/memcached/logger.c:804,1
    - Dst: poll
      Src: /src/memcached/logger.c:824,1
    - Dst: perror
      Src: /src/memcached/logger.c:827,1
    - Dst: read
      Src: /src/memcached/logger.c:843,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:845,1
    - Dst: logger_thread_close_watcher
      Src: /src/memcached/logger.c:846,1
    - Dst: bipbuf_peek_all
      Src: /src/memcached/logger.c:851,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:853,1
    - Dst: logger_thread_close_watcher
      Src: /src/memcached/logger.c:854,1
    - Dst: fwrite
      Src: /src/memcached/logger.c:861,1
    - Dst: write
      Src: /src/memcached/logger.c:864,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:868,1
    - Dst: bipbuf_used
      Src: /src/memcached/logger.c:869,1
    - Dst: logger_thread_close_watcher
      Src: /src/memcached/logger.c:872,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:874,1
    - Dst: logger_thread_close_watcher
      Src: /src/memcached/logger.c:876,1
    - Dst: bipbuf_poll
      Src: /src/memcached/logger.c:878,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 2
    argNames:
    - force_poll
    - watcher
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 886
    functionName: logger_thread_poll_watchers
    functionSourceFile: /src/memcached/logger.c
    functionUses: 1
    functionsReached:
    - write
    - read
    - bipbuf_poll
    - fwrite
    - poll
    - bipbuf_peek_all
    - perror
    - bipbuf_used
    - L_DEBUG
    - logger_thread_close_watcher
    linkageType: ''
    returnType: int
    signature: int logger_thread_poll_watchers(int force_poll, int watcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/logger.c:889,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/logger.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ls
    argTypes:
    - struct logger_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 896
    functionName: logger_thread_flush_stats
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - STATS_UNLOCK
    - STATS_LOCK
    linkageType: ''
    returnType: void
    signature: void logger_thread_flush_stats(struct logger_stats *ls)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:904,1
    - Dst: memset
      Src: /src/memcached/logger.c:911,1
    - Dst: usleep
      Src: /src/memcached/logger.c:915,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:918,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/logger.c:922,1
    - Dst: logger_thread_read
      Src: /src/memcached/logger.c:926,1
    - Dst: logger_thread_poll_watchers
      Src: /src/memcached/logger.c:929,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:934,1
    - Dst: logger_thread_flush_stats
      Src: /src/memcached/logger.c:947,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 902
    functionDepth: 3
    functionLinenumber: 902
    functionLinenumberEnd: 951
    functionName: logger_thread
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - logger_thread_poll_watchers
    - usleep
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - logger_thread_flush_stats
    - logger_thread_read
    - pthread_cond_wait
    - L_DEBUG
    - memset
    linkageType: ''
    returnType: void
    signature: void *logger_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/memcached/logger.c:956,1
    - Dst: fprintf
      Src: /src/memcached/logger.c:958,1
    - Dst: strerror
      Src: /src/memcached/logger.c:958,1
    - Dst: thread_setname
      Src: /src/memcached/logger.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 963
    functionName: start_logger_thread
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - pthread_create
    - thread_setname
    linkageType: ''
    returnType: int
    signature: int start_logger_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:968,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/logger.c:970,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:971,1
    - Dst: pthread_join
      Src: /src/memcached/logger.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 974
    functionName: stop_logger_thread
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - pthread_mutex_unlock
    - pthread_cond_signal
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int stop_logger_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/memcached/logger.c:988,1
    - Dst: start_logger_thread
      Src: /src/memcached/logger.c:990,1
    - Dst: abort
      Src: /src/memcached/logger.c:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 998
    functionName: logger_init
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    - abort
    - start_logger_thread
    linkageType: ''
    returnType: void
    signature: void logger_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_logger_thread
      Src: /src/memcached/logger.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    functionName: logger_stop
    functionSourceFile: /src/memcached/logger.c
    functionUses: 0
    functionsReached:
    - stop_logger_thread
    linkageType: ''
    returnType: void
    signature: void logger_stop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:1008,1
    - Dst: calloc
      Src: /src/memcached/logger.c:1009,1
    - Dst: bipbuf_new
      Src: /src/memcached/logger.c:1014,1
    - Dst: free
      Src: /src/memcached/logger.c:1016,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/logger.c:1022,1
    - Dst: pthread_setspecific
      Src: /src/memcached/logger.c:1023,1
    - Dst: logger_link_q
      Src: /src/memcached/logger.c:1026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1028
    functionName: logger_create
    functionSourceFile: /src/memcached/logger.c
    functionUses: 2
    functionsReached:
    - free
    - logger_link_q
    - bipbuf_new
    - pthread_mutex_init
    - pthread_setspecific
    - L_DEBUG
    - calloc
    linkageType: ''
    returnType: logger
    signature: logger *logger_create(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:1043,1
    - Dst: bipbuf_request
      Src: /src/memcached/logger.c:1045,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:1048,1
    - Dst: logger_get_gid
      Src: /src/memcached/logger.c:1053,1
    - Dst: gettimeofday
      Src: /src/memcached/logger.c:1061,1
    - Dst: va_start
      Src: /src/memcached/logger.c:1063,1
    - Dst: entry_details*::log_cb
      Src: /src/memcached/logger.c:1064,1
    - Dst: va_end
      Src: /src/memcached/logger.c:1065,1
    - Dst: bipbuf_push
      Src: /src/memcached/logger.c:1075,1
    - Dst: fprintf
      Src: /src/memcached/logger.c:1076,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:1077,1
    - Dst: L_DEBUG
      Src: /src/memcached/logger.c:1081,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:1084,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - l
    - event
    - entry
    argTypes:
    - logger*
    - enum log_entry_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1091
    functionName: logger_log
    functionSourceFile: /src/memcached/logger.c
    functionUses: 3
    functionsReached:
    - fprintf
    - logger_get_gid
    - gettimeofday
    - bipbuf_request
    - va_end
    - va_start
    - bipbuf_push
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - entry_details*::log_cb
    - L_DEBUG
    linkageType: ''
    returnType: enum logger_ret_type
    signature: enum logger_ret_type logger_log(logger *l, const enum log_entry_type
      event, const void *entry, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/logger.c:1100,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:1102,1
    - Dst: calloc
      Src: /src/memcached/logger.c:1111,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:1113,1
    - Dst: logger_get_gid
      Src: /src/memcached/logger.c:1125,1
    - Dst: bipbuf_new
      Src: /src/memcached/logger.c:1126,1
    - Dst: free
      Src: /src/memcached/logger.c:1128,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:1129,1
    - Dst: bipbuf_offer
      Src: /src/memcached/logger.c:1132,1
    - Dst: logger_set_flags
      Src: /src/memcached/logger.c:1137,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/logger.c:1138,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/logger.c:1140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - c
    - sfd
    - f
    argTypes:
    - void*
    - int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1097
    functionDepth: 2
    functionLinenumber: 1097
    functionLinenumberEnd: 1142
    functionName: logger_add_watcher
    functionSourceFile: /src/memcached/logger.c
    functionUses: 1
    functionsReached:
    - bipbuf_offer
    - free
    - logger_get_gid
    - pthread_cond_signal
    - pthread_mutex_unlock
    - bipbuf_new
    - pthread_mutex_lock
    - logger_set_flags
    - calloc
    linkageType: ''
    returnType: enum logger_add_watcher_ret
    signature: enum logger_add_watcher_ret logger_add_watcher(void *c, const int sfd,
      uint16_t f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:57,1
    - Dst: extstore_check
      Src: /src/memcached/storage.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - e
    - it
    argTypes:
    - void*
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: storage_validate_item
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - extstore_check
    - ITEM_data
    linkageType: ''
    returnType: bool
    signature: bool storage_validate_item(void *e, item *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:67,1
    - Dst: extstore_delete
      Src: /src/memcached/storage.c:68,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - e
    - it
    argTypes:
    - void*
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: storage_delete
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - extstore_delete
    - ITEM_ntotal
    - ITEM_data
    linkageType: ''
    returnType: void
    signature: void storage_delete(void *e, item *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/storage.c:86,1
    - Dst: extstore_get_stats
      Src: /src/memcached/storage.c:92,1
    - Dst: calloc
      Src: /src/memcached/storage.c:93,1
    - Dst: extstore_get_page_data
      Src: /src/memcached/storage.c:94,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/storage.c:97,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/storage.c:99,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/storage.c:101,1
    - Dst: APPEND_NUM_STAT
      Src: /src/memcached/storage.c:103,1
    - Dst: free
      Src: /src/memcached/storage.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts:
    - condition: (add_stats)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 108
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 108
    functionName: process_extstore_stats
    functionSourceFile: /src/memcached/storage.c
    functionUses: 2
    functionsReached:
    - free
    - extstore_get_stats
    - assert
    - APPEND_NUM_STAT
    - extstore_get_page_data
    - calloc
    linkageType: ''
    returnType: void
    signature: void process_extstore_stats(ADD_STAT add_stats, void *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/storage.c:114,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:115,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:116,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:117,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:118,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:119,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:120,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/storage.c:121,1
    - Dst: extstore_get_stats
      Src: /src/memcached/storage.c:122,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:123,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:124,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:125,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:126,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:127,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:128,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:129,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:130,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:131,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:132,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:133,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:134,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:135,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:136,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:137,1
    - Dst: APPEND_STAT
      Src: /src/memcached/storage.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 141
    functionName: storage_stats
    functionSourceFile: /src/memcached/storage.c
    functionUses: 1
    functionsReached:
    - extstore_get_stats
    - APPEND_STAT
    - STATS_UNLOCK
    - STATS_LOCK
    linkageType: ''
    returnType: void
    signature: void storage_stats(ADD_STAT add_stats, void *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/storage.c:151,1
    - Dst: crc32c
      Src: /src/memcached/storage.c:165,1
    - Dst: crc32c
      Src: /src/memcached/storage.c:169,1
    - Dst: crc32c
      Src: /src/memcached/storage.c:172,1
    - Dst: ntohl
      Src: /src/memcached/storage.c:196,1
    - Dst: htons
      Src: /src/memcached/storage.c:201,1
    - Dst: htonl
      Src: /src/memcached/storage.c:202,1
    - Dst: memcmp
      Src: /src/memcached/storage.c:214,1
    - Dst: assert
      Src: /src/memcached/storage.c:236,1
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:240,1
    - Dst: return_io_pending
      Src: /src/memcached/storage.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 3
    argNames:
    - e
    - io
    - ret
    argTypes:
    - void*
    - obj_io*
    - int
    assertStmts:
    - condition: (p->active == true)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/memcached/storage.c
    - condition: (read_it->slabs_clsid != 0)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 249
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 249
    functionName: _storage_get_item_cb
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - return_io_pending
    - ITEM_data
    - ntohl
    - htonl
    - htons
    - memcmp
    - assert
    - crc32c
    linkageType: ''
    returnType: void
    signature: void _storage_get_item_cb(void *e, obj_io *io, int ret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/storage.c:254,1
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:254,1
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:256,1
    - Dst: thread_io_queue_get
      Src: /src/memcached/storage.c:258,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:259,1
    - Dst: slabs_clsid
      Src: /src/memcached/storage.c:260,1
    - Dst: FLAGS_CONV
      Src: /src/memcached/storage.c:266,1
    - Dst: item_alloc
      Src: /src/memcached/storage.c:267,1
    - Dst: ITEM_key
      Src: /src/memcached/storage.c:267,1
    - Dst: assert
      Src: /src/memcached/storage.c:268,1
    - Dst: do_item_alloc_pull
      Src: /src/memcached/storage.c:271,1
    - Dst: do_cache_alloc
      Src: /src/memcached/storage.c:278,1
    - Dst: assert
      Src: /src/memcached/storage.c:280,1
    - Dst: memset
      Src: /src/memcached/storage.c:281,1
    - Dst: ITEM_schunk
      Src: /src/memcached/storage.c:300,1
    - Dst: malloc
      Src: /src/memcached/storage.c:305,1
    - Dst: item_remove
      Src: /src/memcached/storage.c:307,1
    - Dst: do_cache_free
      Src: /src/memcached/storage.c:308,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:314,1
    - Dst: do_item_alloc_chunk
      Src: /src/memcached/storage.c:318,1
    - Dst: item_remove
      Src: /src/memcached/storage.c:321,1
    - Dst: free
      Src: /src/memcached/storage.c:322,1
    - Dst: do_cache_free
      Src: /src/memcached/storage.c:325,1
    - Dst: resp_add_chunked_iov
      Src: /src/memcached/storage.c:342,1
    - Dst: resp_add_iov
      Src: /src/memcached/storage.c:344,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/storage.c:352,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:374,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 3
    argNames:
    - t
    - it
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - item*
    - mc_resp*
    assertStmts:
    - condition: (new_it == NULL || (new_it->it_flags & ITEM_CHUNKED))
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/memcached/storage.c
    - condition: (sizeof(io_pending_t) >= sizeof(io_pending_storage_t))
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 379
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 379
    functionName: storage_get_item
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - ITEM_ntotal
    - STAILQ_INSERT_TAIL
    - do_item_alloc_pull
    - item_remove
    - slabs_clsid
    - ITEM_data
    - assert
    - do_cache_alloc
    - resp_add_iov
    - do_item_alloc_chunk
    - malloc
    - pthread_mutex_lock
    - FLAGS_CONV
    - memset
    - memcpy
    - free
    - item_alloc
    - do_cache_free
    - thread_io_queue_get
    - resp_add_chunked_iov
    - pthread_mutex_unlock
    - ITEM_key
    linkageType: ''
    returnType: int
    signature: int storage_get_item(LIBEVENT_THREAD *t, item *it, mc_resp *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/storage.c:386,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/storage.c:387,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/storage.c:388,1
    - Dst: extstore_submit
      Src: /src/memcached/storage.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - q
    argTypes:
    - io_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 395
    functionName: storage_submit_cb
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - extstore_submit
    - STAILQ_FIRST
    - STAILQ_EMPTY
    - STAILQ_REMOVE_HEAD
    linkageType: ''
    returnType: void
    signature: void storage_submit_cb(io_queue_t *q)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/storage.c:404,1
    - Dst: assert
      Src: /src/memcached/storage.c:406,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:412,1
    - Dst: slabs_free
      Src: /src/memcached/storage.c:413,1
    - Dst: slabs_clsid
      Src: /src/memcached/storage.c:413,1
    - Dst: thread_io_queue_get
      Src: /src/memcached/storage.c:419,1
    - Dst: STAILQ_REMOVE
      Src: /src/memcached/storage.c:420,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:422,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:424,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:428,1
    - Dst: item_unlink
      Src: /src/memcached/storage.c:429,1
    - Dst: slabs_free
      Src: /src/memcached/storage.c:430,1
    - Dst: slabs_clsid
      Src: /src/memcached/storage.c:430,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:431,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:435,1
    - Dst: item_trylock
      Src: /src/memcached/storage.c:440,1
    - Dst: STORAGE_delete
      Src: /src/memcached/storage.c:455,1
    - Dst: item_replace
      Src: /src/memcached/storage.c:456,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/storage.c:456,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:457,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:459,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/storage.c:463,1
    - Dst: slabs_free
      Src: /src/memcached/storage.c:466,1
    - Dst: ITEM_clsid
      Src: /src/memcached/storage.c:466,1
    - Dst: item_remove
      Src: /src/memcached/storage.c:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 1
    argNames:
    - pending
    argTypes:
    - io_pending_t*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/memcached/storage.c
    - condition: (io != NULL)
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 474
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 474
    functionName: recache_or_free
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - STAILQ_REMOVE
    - item_trylock_unlock
    - item_remove
    - ITEM_clsid
    - slabs_clsid
    - item_unlink
    - STORAGE_delete
    - thread_io_queue_get
    - pthread_mutex_unlock
    - item_replace
    - pthread_mutex_lock
    - assert
    - ITEM_get_cas
    - slabs_free
    - item_trylock
    - ITEM_ntotal
    linkageType: ''
    returnType: void
    signature: void recache_or_free(io_pending_t *pending)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_resp_unsuspend
      Src: /src/memcached/storage.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pending
    argTypes:
    - io_pending_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: storage_return_cb
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - conn_resp_unsuspend
    linkageType: ''
    returnType: void
    signature: void storage_return_cb(io_pending_t *pending)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recache_or_free
      Src: /src/memcached/storage.c:483,1
    - Dst: free
      Src: /src/memcached/storage.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pending
    argTypes:
    - io_pending_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 5
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: storage_finalize_cb
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - free
    - recache_or_free
    linkageType: ''
    returnType: void
    signature: void storage_finalize_cb(io_pending_t *pending)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lru_pull_tail
      Src: /src/memcached/storage.c:503,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:512,1
    - Dst: FLAGS_CONV
      Src: /src/memcached/storage.c:516,1
    - Dst: do_item_alloc
      Src: /src/memcached/storage.c:517,1
    - Dst: ITEM_key
      Src: /src/memcached/storage.c:517,1
    - Dst: assert
      Src: /src/memcached/storage.c:533,1
    - Dst: extstore_write_request
      Src: /src/memcached/storage.c:536,1
    - Dst: ITEM_schunk
      Src: /src/memcached/storage.c:545,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:549,1
    - Dst: memcpy
      Src: /src/memcached/storage.c:550,1
    - Dst: assert
      Src: /src/memcached/storage.c:554,1
    - Dst: memcpy
      Src: /src/memcached/storage.c:555,1
    - Dst: memcpy
      Src: /src/memcached/storage.c:562,1
    - Dst: crc32c
      Src: /src/memcached/storage.c:566,1
    - Dst: extstore_write
      Src: /src/memcached/storage.c:567,1
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:568,1
    - Dst: item_replace
      Src: /src/memcached/storage.c:579,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/storage.c:579,1
    - Dst: do_item_remove
      Src: /src/memcached/storage.c:580,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/storage.c:582,1
    - Dst: slabs_free
      Src: /src/memcached/storage.c:585,1
    - Dst: ITEM_clsid
      Src: /src/memcached/storage.c:585,1
    - Dst: do_item_remove
      Src: /src/memcached/storage.c:589,1
    - Dst: item_unlock
      Src: /src/memcached/storage.c:590,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 3
    argNames:
    - storage
    - clsid
    - item_age
    argTypes:
    - void*
    - int
    - int
    assertStmts:
    - condition: (it->refcount >= 2)
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/memcached/storage.c
    - condition: (remain >= sch->used)
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 592
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 592
    functionName: storage_write
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - item_replace
    - crc32c
    - do_item_alloc
    - extstore_write
    - lru_pull_tail
    - ITEM_clsid
    - ITEM_data
    - LOGGER_LOG
    - assert
    - slabs_free
    - item_unlock
    - ITEM_get_cas
    - FLAGS_CONV
    - memcpy
    - extstore_write_request
    - ITEM_key
    - do_item_remove
    - ITEM_ntotal
    linkageType: ''
    returnType: int
    signature: int storage_write(void *storage, const int clsid, const int item_age)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: logger_create
      Src: /src/memcached/storage.c:605,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:607,1
    - Dst: abort
      Src: /src/memcached/storage.c:608,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:611,1
    - Dst: slabs_clsid
      Src: /src/memcached/storage.c:621,1
    - Dst: global_page_pool_size
      Src: /src/memcached/storage.c:622,1
    - Dst: slabs_available_chunks
      Src: /src/memcached/storage.c:648,1
    - Dst: storage_write
      Src: /src/memcached/storage.c:686,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/storage.c:691,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:711,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/storage.c:723,1
    - Dst: usleep
      Src: /src/memcached/storage.c:727,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:730,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 598
    functionDepth: 5
    functionLinenumber: 598
    functionLinenumberEnd: 733
    functionName: storage_write_thread
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - global_page_pool_size
    - fprintf
    - pthread_cond_signal
    - slabs_clsid
    - storage_write
    - slabs_available_chunks
    - pthread_mutex_unlock
    - usleep
    - pthread_mutex_lock
    - logger_create
    - abort
    linkageType: ''
    returnType: void
    signature: void *storage_write_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 753
    functionName: storage_write_pause
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void storage_write_pause(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 757
    functionName: storage_write_resume
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void storage_write_resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/memcached/storage.c:762,1
    - Dst: pthread_create
      Src: /src/memcached/storage.c:763,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:765,1
    - Dst: strerror
      Src: /src/memcached/storage.c:766,1
    - Dst: thread_setname
      Src: /src/memcached/storage.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 772
    functionName: start_storage_write_thread
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_create
    - thread_setname
    - pthread_mutex_init
    - strerror
    linkageType: ''
    returnType: int
    signature: int start_storage_write_thread(void *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: extstore_get_stats
      Src: /src/memcached/storage.c:805,1
    - Dst: memset
      Src: /src/memcached/storage.c:810,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/storage.c:817,1
    - Dst: calloc
      Src: /src/memcached/storage.c:819,1
    - Dst: extstore_get_page_data
      Src: /src/memcached/storage.c:820,1
    - Dst: free
      Src: /src/memcached/storage.c:852,1
    - Dst: extstore_evict_page
      Src: /src/memcached/storage.c:858,1
    - Dst: extstore_evict_page
      Src: /src/memcached/storage.c:867,1
    - Dst: assert
      Src: /src/memcached/storage.c:874,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 82
    argCount: 6
    argNames:
    - storage
    - l
    - page_id
    - page_version
    - page_size
    - flags
    argTypes:
    - void*
    - logger*
    - uint32_t*
    - uint64_t*
    - uint64_t*
    - struct _compact_flags*
    assertStmts:
    - condition: (buk->pages_total == (buk->pages_used + buk->pages_free))
      pos:
        line_end: 873
        line_start: 873
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 920
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 920
    functionName: storage_compact_check
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - free
    - extstore_get_stats
    - extstore_evict_page
    - LOGGER_LOG
    - assert
    - extstore_get_page_data
    - memset
    - calloc
    linkageType: ''
    returnType: int
    signature: "int storage_compact_check(void *storage, logger *l,\n        uint32_t
      *page_id, uint64_t *page_version,\n        uint64_t *page_size, struct _compact_flags
      *flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_ntotal
      Src: /src/memcached/storage.c:952,1
    - Dst: item_lock
      Src: /src/memcached/storage.c:954,1
    - Dst: assoc_find
      Src: /src/memcached/storage.c:956,1
    - Dst: ITEM_key
      Src: /src/memcached/storage.c:956,1
    - Dst: refcount_incr
      Src: /src/memcached/storage.c:960,1
    - Dst: item_is_flushed
      Src: /src/memcached/storage.c:963,1
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:965,1
    - Dst: extstore_delete
      Src: /src/memcached/storage.c:969,1
    - Dst: GET_LRU
      Src: /src/memcached/storage.c:972,1
    - Dst: extstore_write_request
      Src: /src/memcached/storage.c:991,1
    - Dst: memcpy
      Src: /src/memcached/storage.c:992,1
    - Dst: extstore_write
      Src: /src/memcached/storage.c:993,1
    - Dst: usleep
      Src: /src/memcached/storage.c:997,1
    - Dst: FLAGS_CONV
      Src: /src/memcached/storage.c:1011,1
    - Dst: do_item_alloc
      Src: /src/memcached/storage.c:1012,1
    - Dst: ITEM_key
      Src: /src/memcached/storage.c:1012,1
    - Dst: ITEM_data
      Src: /src/memcached/storage.c:1022,1
    - Dst: item_replace
      Src: /src/memcached/storage.c:1028,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/storage.c:1028,1
    - Dst: do_item_remove
      Src: /src/memcached/storage.c:1029,1
    - Dst: do_item_remove
      Src: /src/memcached/storage.c:1049,1
    - Dst: item_unlock
      Src: /src/memcached/storage.c:1052,1
    - Dst: STATS_LOCK
      Src: /src/memcached/storage.c:1058,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/storage.c:1064,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/storage.c:1065,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 8
    argNames:
    - storage
    - l
    - flags
    - readback_buf
    - page_id
    - page_version
    - page_offset
    - read_size
    argTypes:
    - void*
    - logger*
    - struct _compact_flags
    - char*
    - uint32_t
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 1067
    functionName: storage_compact_readback
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - item_replace
    - extstore_delete
    - do_item_alloc
    - refcount_incr
    - STATS_LOCK
    - extstore_write
    - ITEM_data
    - usleep
    - LOGGER_LOG
    - item_is_flushed
    - GET_LRU
    - item_lock
    - STATS_UNLOCK
    - item_unlock
    - ITEM_get_cas
    - FLAGS_CONV
    - memcpy
    - extstore_write_request
    - ITEM_key
    - do_item_remove
    - assoc_find
    - ITEM_ntotal
    linkageType: ''
    returnType: void
    signature: "void storage_compact_readback(void *storage, logger *l,\n        struct
      _compact_flags flags, char *readback_buf,\n        uint32_t page_id, uint64_t
      page_version, uint32_t page_offset, uint64_t read_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/storage.c:1073,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - e
    - io
    - ret
    argTypes:
    - void*
    - obj_io*
    - int
    assertStmts:
    - condition: (wrap->submitted == true)
      pos:
        line_end: 1072
        line_start: 1072
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 1081
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1081
    functionName: _storage_compact_cb
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void _storage_compact_cb(void *e, obj_io *io, int ret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/storage.c:1096,1
    - Dst: logger_create
      Src: /src/memcached/storage.c:1098,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1100,1
    - Dst: abort
      Src: /src/memcached/storage.c:1101,1
    - Dst: malloc
      Src: /src/memcached/storage.c:1104,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1106,1
    - Dst: abort
      Src: /src/memcached/storage.c:1107,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/storage.c:1110,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:1120,1
    - Dst: storage_compact_check
      Src: /src/memcached/storage.c:1123,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/storage.c:1127,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/storage.c:1130,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:1134,1
    - Dst: extstore_submit_bg
      Src: /src/memcached/storage.c:1144,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/storage.c:1146,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/storage.c:1152,1
    - Dst: storage_compact_readback
      Src: /src/memcached/storage.c:1154,1
    - Dst: extstore_close_page
      Src: /src/memcached/storage.c:1164,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/storage.c:1165,1
    - Dst: usleep
      Src: /src/memcached/storage.c:1168,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:1170,1
    - Dst: free
      Src: /src/memcached/storage.c:1173,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1176
    functionName: storage_compact_thread
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - extstore_submit_bg
    - free
    - fprintf
    - storage_compact_check
    - storage_compact_readback
    - extstore_close_page
    - malloc
    - pthread_mutex_unlock
    - usleep
    - pthread_mutex_lock
    - LOGGER_LOG
    - pthread_mutex_init
    - logger_create
    - abort
    - pthread_cond_wait
    - memset
    linkageType: ''
    returnType: void
    signature: void *storage_compact_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/storage.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1195
    functionName: storage_compact_pause
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void storage_compact_pause(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/storage.c:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1199
    functionName: storage_compact_resume
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void storage_compact_resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/memcached/storage.c:1204,1
    - Dst: pthread_cond_init
      Src: /src/memcached/storage.c:1205,1
    - Dst: pthread_create
      Src: /src/memcached/storage.c:1206,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1208,1
    - Dst: strerror
      Src: /src/memcached/storage.c:1209,1
    - Dst: thread_setname
      Src: /src/memcached/storage.c:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1215
    functionName: start_storage_compact_thread
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_create
    - thread_setname
    - pthread_mutex_init
    - strerror
    - pthread_cond_init
    linkageType: ''
    returnType: int
    signature: int start_storage_compact_thread(void *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strtok_r
      Src: /src/memcached/storage.c:1223,1
    - Dst: calloc
      Src: /src/memcached/storage.c:1230,1
    - Dst: strdup
      Src: /src/memcached/storage.c:1231,1
    - Dst: strtok_r
      Src: /src/memcached/storage.c:1233,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1235,1
    - Dst: tolower
      Src: /src/memcached/storage.c:1238,1
    - Dst: strlen
      Src: /src/memcached/storage.c:1238,1
    - Dst: strlen
      Src: /src/memcached/storage.c:1239,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1257,1
    - Dst: atoi
      Src: /src/memcached/storage.c:1260,1
    - Dst: strtok_r
      Src: /src/memcached/storage.c:1264,1
    - Dst: strcmp
      Src: /src/memcached/storage.c:1268,1
    - Dst: strcmp
      Src: /src/memcached/storage.c:1270,1
    - Dst: strcmp
      Src: /src/memcached/storage.c:1272,1
    - Dst: strcmp
      Src: /src/memcached/storage.c:1274,1
    - Dst: strcmp
      Src: /src/memcached/storage.c:1276,1
    - Dst: strcmp
      Src: /src/memcached/storage.c:1278,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1281,1
    - Dst: free
      Src: /src/memcached/storage.c:1293,1
    - Dst: free
      Src: /src/memcached/storage.c:1294,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1297
    functionName: storage_conf_parse
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    - atoi
    - tolower
    - strlen
    - strcmp
    - strdup
    - calloc
    - strtok_r
    linkageType: ''
    returnType: struct extstore_conf_file
    signature: struct extstore_conf_file *storage_conf_parse(char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/storage.c:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1328
    functionName: storage_init_config
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void *storage_init_config(struct settings *s)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: getsubopt
      Src: /src/memcached/storage.c:1373,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1376,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1379,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1380,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1387,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1390,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1391,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1399,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1402,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1403,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1409,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1412,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1413,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1419,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1422,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1423,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1429,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1432,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1433,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1439,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1442,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1443,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1449,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1452,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1453,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1459,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1462,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1463,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1469,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1472,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1473,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1479,1
    - Dst: safe_strtoul
      Src: /src/memcached/storage.c:1482,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1483,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1489,1
    - Dst: safe_strtod
      Src: /src/memcached/storage.c:1492,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1493,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1499,1
    - Dst: safe_strtod
      Src: /src/memcached/storage.c:1502,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1503,1
    - Dst: storage_conf_parse
      Src: /src/memcached/storage.c:1512,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1514,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1522,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1527,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 158
    argCount: 2
    argNames:
    - conf
    - subopt
    argTypes:
    - void*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1532
    functionName: storage_read_config
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - fprintf
    - safe_strtod
    - storage_conf_parse
    - safe_strtoul
    - getsubopt
    linkageType: ''
    returnType: int
    signature: int storage_read_config(void *conf, char **subopt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/memcached/storage.c:1540,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1546,1
    - Dst: assert
      Src: /src/memcached/storage.c:1554,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - conf
    argTypes:
    - void*
    assertStmts:
    - condition: (cf->ext_cf.page_size * fh->page_count <= fh->total_size)
      pos:
        line_end: 1553
        line_start: 1553
        source_file: /src/memcached/storage.c
    constantsTouched: []
    func_position:
      end: 1566
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1566
    functionName: storage_check_config
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: int
    signature: int storage_check_config(void *conf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crc32c_init
      Src: /src/memcached/storage.c:1585,1
    - Dst: extstore_init
      Src: /src/memcached/storage.c:1588,1
    - Dst: fprintf
      Src: /src/memcached/storage.c:1590,1
    - Dst: extstore_err
      Src: /src/memcached/storage.c:1591,1
    - Dst: perror
      Src: /src/memcached/storage.c:1593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - conf
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1599
    functionName: storage_init
    functionSourceFile: /src/memcached/storage.c
    functionUses: 0
    functionsReached:
    - extstore_err
    - fprintf
    - crc32c_init
    - extstore_init
    - perror
    linkageType: ''
    returnType: void
    signature: void *storage_init(void *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/memcached/proxy_tls.c:30,1
    - Dst: TLS_client_method
      Src: /src/memcached/proxy_tls.c:30,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/memcached/proxy_tls.c:36,1
    - Dst: SSL_CTX_set_mode
      Src: /src/memcached/proxy_tls.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - proxy_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 42
    functionName: mcp_tls_init
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 1
    functionsReached:
    - TLS_client_method
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_new
    - SSL_CTX_set_mode
    linkageType: ''
    returnType: int
    signature: int mcp_tls_init(proxy_ctx_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/memcached/proxy_tls.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - be
    argTypes:
    - proxy_ctx_t*
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: mcp_tls_backend_init
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 1
    functionsReached:
    - SSL_new
    linkageType: ''
    returnType: int
    signature: int mcp_tls_backend_init(proxy_ctx_t *ctx, struct mcp_backendconn_s
      *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/memcached/proxy_tls.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: mcp_tls_shutdown
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 2
    functionsReached:
    - SSL_shutdown
    linkageType: ''
    returnType: int
    signature: int mcp_tls_shutdown(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/memcached/proxy_tls.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: mcp_tls_cleanup
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 0
    functionsReached:
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int mcp_tls_cleanup(struct mcp_backendconn_s *be)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_fd
      Src: /src/memcached/proxy_tls.c:89,1
    - Dst: mcmc_fd
      Src: /src/memcached/proxy_tls.c:89,1
    - Dst: SSL_clear
      Src: /src/memcached/proxy_tls.c:100,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:101,1
    - Dst: SSL_connect
      Src: /src/memcached/proxy_tls.c:102,1
    - Dst: SSL_get_error
      Src: /src/memcached/proxy_tls.c:110,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:113,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 127
    functionName: mcp_tls_connect
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 1
    functionsReached:
    - SSL_get_error
    - SSL_clear
    - mcmc_fd
    - SSL_set_fd
    - SSL_connect
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int mcp_tls_connect(struct mcp_backendconn_s *be)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_init_finished
      Src: /src/memcached/proxy_tls.c:130,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:135,1
    - Dst: SSL_do_handshake
      Src: /src/memcached/proxy_tls.c:136,1
    - Dst: SSL_get_error
      Src: /src/memcached/proxy_tls.c:141,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:148,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 156
    functionName: mcp_tls_handshake
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 1
    functionsReached:
    - SSL_is_init_finished
    - SSL_do_handshake
    - SSL_get_error
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int mcp_tls_handshake(struct mcp_backendconn_s *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/proxy_tls.c:160,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:163,1
    - Dst: SSL_write
      Src: /src/memcached/proxy_tls.c:164,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: mcp_tls_send_validate
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 1
    functionsReached:
    - strlen
    - SSL_write
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int mcp_tls_send_validate(struct mcp_backendconn_s *be)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_read
      Src: /src/memcached/proxy_tls.c:176,1
    - Dst: SSL_get_error
      Src: /src/memcached/proxy_tls.c:179,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:182,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct mcp_backendconn_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 195
    functionName: mcp_tls_read
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 2
    functionsReached:
    - SSL_get_error
    - SSL_read
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int mcp_tls_read(struct mcp_backendconn_s *be)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/proxy_tls.c:213,1
    - Dst: memcpy
      Src: /src/memcached/proxy_tls.c:227,1
    - Dst: SSL_write
      Src: /src/memcached/proxy_tls.c:234,1
    - Dst: SSL_get_error
      Src: /src/memcached/proxy_tls.c:236,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:239,1
    - Dst: ERR_clear_error
      Src: /src/memcached/proxy_tls.c:242,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - be
    - iovcnt
    argTypes:
    - struct mcp_backendconn_s*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 247
    functionName: mcp_tls_writev
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 1
    functionsReached:
    - SSL_get_error
    - malloc
    - ERR_clear_error
    - SSL_write
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcp_tls_writev(struct mcp_backendconn_s *be, int iovcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - be
    - iovcnt
    argTypes:
    - struct mcp_backendconn_s*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: mcp_tls_writev
    functionSourceFile: /src/memcached/proxy_tls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mcp_tls_writev(struct mcp_backendconn_s *be, int iovcnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mat
    - vec
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: gf2_matrix_times
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gf2_matrix_times(uint32_t *mat, uint32_t vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf2_matrix_times
      Src: /src/memcached/crc32c.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - square
    - mat
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: gf2_matrix_square
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - gf2_matrix_times
    linkageType: ''
    returnType: void
    signature: void gf2_matrix_square(uint32_t *square, uint32_t *mat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf2_matrix_square
      Src: /src/memcached/crc32c.c:97,1
    - Dst: gf2_matrix_square
      Src: /src/memcached/crc32c.c:100,1
    - Dst: gf2_matrix_square
      Src: /src/memcached/crc32c.c:106,1
    - Dst: gf2_matrix_square
      Src: /src/memcached/crc32c.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - even
    - len
    argTypes:
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 117
    functionName: crc32c_zeros_op
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - gf2_matrix_square
    linkageType: ''
    returnType: void
    signature: void crc32c_zeros_op(uint32_t *even, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32c_zeros_op
      Src: /src/memcached/crc32c.c:124,1
    - Dst: gf2_matrix_times
      Src: /src/memcached/crc32c.c:126,1
    - Dst: gf2_matrix_times
      Src: /src/memcached/crc32c.c:127,1
    - Dst: gf2_matrix_times
      Src: /src/memcached/crc32c.c:128,1
    - Dst: gf2_matrix_times
      Src: /src/memcached/crc32c.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - zeros
    - len
    argTypes:
    - uint32_t[][]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: crc32c_zeros
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - gf2_matrix_times
    - crc32c_zeros_op
    linkageType: ''
    returnType: void
    signature: void crc32c_zeros(uint32_t zeros[][256], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zeros
    - crc
    argTypes:
    - uint32_t[][]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: crc32c_shift
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32c_shift(uint32_t zeros[][256], uint32_t crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32c_zeros
      Src: /src/memcached/crc32c.c:156,1
    - Dst: crc32c_zeros
      Src: /src/memcached/crc32c.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: crc32c_init_hw
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - crc32c_zeros
    linkageType: ''
    returnType: void
    signature: void crc32c_init_hw(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/memcached/crc32c.c:163,1
    - Dst: crc32c_shift
      Src: /src/memcached/crc32c.c:196,1
    - Dst: crc32c_shift
      Src: /src/memcached/crc32c.c:197,1
    - Dst: crc32c_shift
      Src: /src/memcached/crc32c.c:216,1
    - Dst: crc32c_shift
      Src: /src/memcached/crc32c.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 246
    functionName: crc32c_hw
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - crc32c_shift
    - pthread_once
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32c_hw(uint32_t crc, void const *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - have
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: SSE42
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSE42(have)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSE42
      Src: /src/memcached/crc32c.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: crc32c_init
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 2
    functionsReached:
    - SSE42
    linkageType: ''
    returnType: void
    signature: void crc32c_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: crc32cx
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32cx(uint32_t crc, const uint64_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: crc32cb
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32cb(uint32_t crc, const uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32cb
      Src: /src/memcached/crc32c.c:304,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:311,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:312,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:313,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:314,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:315,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:316,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:317,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:318,1
    - Dst: crc32cx
      Src: /src/memcached/crc32c.c:324,1
    - Dst: crc32cb
      Src: /src/memcached/crc32c.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 336
    functionName: crc32c_hw
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - crc32cx
    - crc32cb
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32c_hw(uint32_t crc, void const *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getauxval
      Src: /src/memcached/crc32c.c:340,1
    - Dst: sysctlbyname
      Src: /src/memcached/crc32c.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 353
    functionName: crc32c_init
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 2
    functionsReached:
    - getauxval
    - sysctlbyname
    linkageType: ''
    returnType: void
    signature: void crc32c_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: crc32c_init
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void crc32c_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: crc32c_init
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void crc32c_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 389
    functionName: crc32c_init_sw_little
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void crc32c_init_sw_little(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/memcached/crc32c.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 424
    functionName: crc32c_sw_little
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32c_sw_little(uint32_t crc, void const *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: swap
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t swap(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/memcached/crc32c.c:457,1
    - Dst: swap
      Src: /src/memcached/crc32c.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 463
    functionName: crc32c_init_sw_big
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: void
    signature: void crc32c_init_sw_big(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/memcached/crc32c.c:470,1
    - Dst: swap
      Src: /src/memcached/crc32c.c:477,1
    - Dst: swap
      Src: /src/memcached/crc32c.c:491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 498
    functionName: crc32c_sw_big
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 0
    functionsReached:
    - swap
    - pthread_once
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32c_sw_big(uint32_t crc, void const *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crc32c_sw_little
      Src: /src/memcached/crc32c.c:510,1
    - Dst: crc32c_sw_big
      Src: /src/memcached/crc32c.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 513
    functionName: crc32c_sw
    functionSourceFile: /src/memcached/crc32c.c
    functionUses: 1
    functionsReached:
    - crc32c_sw_big
    - crc32c_sw_little
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32c_sw(uint32_t crc, void const *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_request.c:8,1
    - Dst: memset
      Src: /src/memcached/proxy_request.c:11,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:12,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:14,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_request.c:18,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_request.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - L
    - pr
    - command
    - cmdlen
    argTypes:
    - lua_State*
    - mcp_parser_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 24
    functionName: mcp_new_request
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_getmetatable
    - lua_newuserdatauv
    - memset
    - lua_setmetatable
    - memcpy
    linkageType: ''
    returnType: mcp_request_t
    signature: mcp_request_t *mcp_new_request(lua_State *L, mcp_parser_t *pr, const
      char *command, size_t cmdlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/proxy_request.c:28,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:29,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pr
    - rq
    - command
    - cmdlen
    argTypes:
    - mcp_parser_t*
    - mcp_request_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: mcp_set_request
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mcp_set_request(mcp_parser_t *pr, mcp_request_t *rq, const char
      *command, size_t cmdlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:56,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:64,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:75,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:84,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:87,1
    - Dst: memset
      Src: /src/memcached/proxy_request.c:95,1
    - Dst: process_request
      Src: /src/memcached/proxy_request.c:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - rq
    - idx
    - flag
    - tok
    - len
    argTypes:
    - mcp_request_t*
    - int
    - char
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 104
    functionName: mcp_request_render
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - process_request
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcp_request_render(mcp_request_t *rq, int idx, const char flag,
      const char *tok, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_request.c:110,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:124,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:128,1
    - Dst: memset
      Src: /src/memcached/proxy_request.c:135,1
    - Dst: process_request
      Src: /src/memcached/proxy_request.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - rq
    - flag
    - tok
    - len
    argTypes:
    - mcp_request_t*
    - char
    - char*
    - size_t
    assertStmts:
    - condition: (*p == '\r')
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/memcached/proxy_request.c
    constantsTouched: []
    func_position:
      end: 144
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 144
    functionName: mcp_request_append
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - process_request
    - assert
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcp_request_append(mcp_request_t *rq, const char flag, const char
      *tok, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - rq
    - p
    argTypes:
    - mcp_request_t*
    - io_pending_proxy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: mcp_request_attach
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mcp_request_attach(mcp_request_t *rq, io_pending_proxy_t *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_request.c:168,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_request.c:172,1
    - Dst: lua_type
      Src: /src/memcached/proxy_request.c:174,1
    - Dst: luaL_optlstring
      Src: /src/memcached/proxy_request.c:176,1
    - Dst: memcmp
      Src: /src/memcached/proxy_request.c:177,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:178,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_request.c:182,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_request.c:189,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:198,1
    - Dst: memcmp
      Src: /src/memcached/proxy_request.c:202,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:203,1
    - Dst: process_request
      Src: /src/memcached/proxy_request.c:209,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:210,1
    - Dst: mcp_new_request
      Src: /src/memcached/proxy_request.c:213,1
    - Dst: malloc
      Src: /src/memcached/proxy_request.c:217,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:224,1
    - Dst: memcpy
      Src: /src/memcached/proxy_request.c:226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 236
    functionName: mcplib_request
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - mcp_new_request
    - PROXY_GET_THR
    - luaL_checklstring
    - malloc
    - process_request
    - memcmp
    - lua_type
    - luaL_testudata
    - proxy_lua_error
    - luaL_optlstring
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcplib_request(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:239,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_request.c:240,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_request.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: mcplib_request_key
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - MCP_PARSER_KEY
    - lua_pushlstring
    linkageType: ''
    returnType: int
    signature: int mcplib_request_key(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:250,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_request.c:251,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_request.c:252,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:255,1
    - Dst: memset
      Src: /src/memcached/proxy_request.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: mcplib_request_ltrimkey
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - MCP_PARSER_KEY
    - proxy_lua_error
    - memset
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_request_ltrimkey(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:266,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_request.c:267,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_request.c:268,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:271,1
    - Dst: memset
      Src: /src/memcached/proxy_request.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: mcplib_request_rtrimkey
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - MCP_PARSER_KEY
    - proxy_lua_error
    - memset
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_request_rtrimkey(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:282,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_request.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: mcplib_request_raw_line
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushlstring
    linkageType: ''
    returnType: int
    signature: int mcplib_request_raw_line(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:288,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_request.c:290,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_request.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: mcplib_request_raw_value
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushlstring
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_request_raw_value(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:299,1
    - Dst: lua_gettop
      Src: /src/memcached/proxy_request.c:300,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_request.c:303,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_request.c:307,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_request.c:311,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_request.c:318,1
    - Dst: mcp_request_render
      Src: /src/memcached/proxy_request.c:319,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:320,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proxy_request.c:328,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_request.c:330,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_request.c:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 336
    functionName: mcplib_request_token
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - mcmc_token_get
    - lua_pushnil
    - luaL_checkudata
    - lua_gettop
    - P_DEBUG
    - proxy_lua_error
    - mcp_request_render
    - lua_tolstring
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_request_token(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:340,1
    - Dst: lua_gettop
      Src: /src/memcached/proxy_request.c:341,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_request.c:344,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_request.c:348,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_request.c:352,1
    - Dst: mcmc_token_get_64
      Src: /src/memcached/proxy_request.c:357,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_request.c:358,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_request.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 363
    functionName: mcplib_request_token_int
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - luaL_checkudata
    - mcmc_token_get_64
    - lua_gettop
    - lua_pushinteger
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_request_token_int(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:366,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_request.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: mcplib_request_ntokens
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_request_ntokens(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:372,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_request.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: mcplib_request_command
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_request_command(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:378,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_request.c:380,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:382,1
    - Dst: mcmc_token_has_flag
      Src: /src/memcached/proxy_request.c:386,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:388,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:391,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 397
    functionName: mcplib_request_has_flag
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checklstring
    - luaL_checkudata
    - mcmc_token_has_flag
    - lua_pushboolean
    - proxy_lua_error
    linkageType: ''
    returnType: int
    signature: int mcplib_request_has_flag(lua_State *L)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:402,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_request.c:404,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:407,1
    - Dst: lua_isstring
      Src: /src/memcached/proxy_request.c:410,1
    - Dst: mcmc_token_has_flag
      Src: /src/memcached/proxy_request.c:415,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:418,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:423,1
    - Dst: mcmc_token_get
      Src: /src/memcached/proxy_request.c:430,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_request.c:434,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_request.c:441,1
    - Dst: mcp_request_render
      Src: /src/memcached/proxy_request.c:442,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:443,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 456
    functionName: mcplib_request_flag_token
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - mcmc_token_get
    - luaL_checklstring
    - luaL_checkudata
    - mcmc_token_has_flag
    - lua_isstring
    - lua_pushboolean
    - proxy_lua_error
    - mcp_request_render
    - lua_tolstring
    linkageType: ''
    returnType: int
    signature: int mcplib_request_flag_token(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:462,1
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_request.c:464,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:466,1
    - Dst: mcmc_token_get_flag_64
      Src: /src/memcached/proxy_request.c:471,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:475,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:478,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_request.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 485
    functionName: mcplib_request_flag_token_int
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checklstring
    - luaL_checkudata
    - lua_pushinteger
    - lua_pushboolean
    - proxy_lua_error
    - mcmc_token_get_flag_64
    linkageType: ''
    returnType: int
    signature: int mcplib_request_flag_token_int(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checklstring
      Src: /src/memcached/proxy_request.c:491,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:494,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - L
    - idx
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 503
    functionName: _mcp_request_get_arg_flag
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - proxy_lua_error
    - luaL_checklstring
    linkageType: ''
    returnType: char
    signature: char _mcp_request_get_arg_flag(lua_State *L, int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_isstring
      Src: /src/memcached/proxy_request.c:509,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_request.c:510,1
    - Dst: lua_isnumber
      Src: /src/memcached/proxy_request.c:511,1
    - Dst: lua_tointegerx
      Src: /src/memcached/proxy_request.c:513,1
    - Dst: itoa_64
      Src: /src/memcached/proxy_request.c:515,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:519,1
    - Dst: lua_isnoneornil
      Src: /src/memcached/proxy_request.c:522,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_request.c:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - L
    - idx
    - tostring
    - tlen
    argTypes:
    - lua_State*
    - int
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 506
    functionDepth: 5
    functionLinenumber: 506
    functionLinenumberEnd: 530
    functionName: _mcp_request_check_flag_token
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - lua_tointegerx
    - lua_isnoneornil
    - lua_isstring
    - lua_isnumber
    - itoa_64
    - proxy_lua_error
    - lua_tolstring
    linkageType: ''
    returnType: char
    signature: char * _mcp_request_check_flag_token(lua_State *L, int idx, char *tostring,
      size_t *tlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:535,1
    - Dst: _mcp_request_get_arg_flag
      Src: /src/memcached/proxy_request.c:536,1
    - Dst: mcmc_token_has_flag
      Src: /src/memcached/proxy_request.c:539,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:541,1
    - Dst: _mcp_request_check_flag_token
      Src: /src/memcached/proxy_request.c:546,1
    - Dst: mcp_request_append
      Src: /src/memcached/proxy_request.c:548,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:549,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 534
    functionDepth: 6
    functionLinenumber: 534
    functionLinenumberEnd: 555
    functionName: mcplib_request_flag_add
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - _mcp_request_get_arg_flag
    - luaL_checkudata
    - mcmc_token_has_flag
    - mcp_request_append
    - lua_pushboolean
    - _mcp_request_check_flag_token
    linkageType: ''
    returnType: int
    signature: int mcplib_request_flag_add(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:560,1
    - Dst: _mcp_request_get_arg_flag
      Src: /src/memcached/proxy_request.c:561,1
    - Dst: mcmc_token_get_flag_idx
      Src: /src/memcached/proxy_request.c:564,1
    - Dst: _mcp_request_check_flag_token
      Src: /src/memcached/proxy_request.c:566,1
    - Dst: mcp_request_render
      Src: /src/memcached/proxy_request.c:572,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:573,1
    - Dst: mcp_request_append
      Src: /src/memcached/proxy_request.c:577,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:578,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 559
    functionDepth: 6
    functionLinenumber: 559
    functionLinenumberEnd: 585
    functionName: mcplib_request_flag_set
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get_flag_idx
    - _mcp_request_get_arg_flag
    - luaL_checkudata
    - mcp_request_append
    - lua_pushboolean
    - _mcp_request_check_flag_token
    - mcp_request_render
    linkageType: ''
    returnType: int
    signature: int mcplib_request_flag_set(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:591,1
    - Dst: _mcp_request_get_arg_flag
      Src: /src/memcached/proxy_request.c:592,1
    - Dst: _mcp_request_get_arg_flag
      Src: /src/memcached/proxy_request.c:593,1
    - Dst: mcmc_token_get_flag_idx
      Src: /src/memcached/proxy_request.c:596,1
    - Dst: _mcp_request_check_flag_token
      Src: /src/memcached/proxy_request.c:598,1
    - Dst: mcp_request_render
      Src: /src/memcached/proxy_request.c:601,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:602,1
    - Dst: mcp_request_append
      Src: /src/memcached/proxy_request.c:606,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:607,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 590
    functionDepth: 6
    functionLinenumber: 590
    functionLinenumberEnd: 614
    functionName: mcplib_request_flag_replace
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get_flag_idx
    - _mcp_request_get_arg_flag
    - luaL_checkudata
    - mcp_request_append
    - lua_pushboolean
    - _mcp_request_check_flag_token
    - mcp_request_render
    linkageType: ''
    returnType: int
    signature: int mcplib_request_flag_replace(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:619,1
    - Dst: _mcp_request_get_arg_flag
      Src: /src/memcached/proxy_request.c:620,1
    - Dst: mcmc_token_get_flag_idx
      Src: /src/memcached/proxy_request.c:622,1
    - Dst: mcp_request_render
      Src: /src/memcached/proxy_request.c:625,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:626,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:631,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 637
    functionName: mcplib_request_flag_del
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get_flag_idx
    - _mcp_request_get_arg_flag
    - luaL_checkudata
    - lua_pushboolean
    - mcp_request_render
    linkageType: ''
    returnType: int
    signature: int mcplib_request_flag_del(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/memcached/proxy_request.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - L
    - rq
    - rql
    - rs
    - rsl
    argTypes:
    - lua_State*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 645
    functionName: _mcplib_request_match_check
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int _mcplib_request_match_check(lua_State *L, const char *rq, int rql,
      const char *rs, int rsl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:649,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:650,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_request.c:658,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/proxy_request.c:659,1
    - Dst: mcmc_tokenize_res
      Src: /src/memcached/proxy_request.c:660,1
    - Dst: mcmc_token_has_flag
      Src: /src/memcached/proxy_request.c:665,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_request.c:666,1
    - Dst: _mcplib_request_match_check
      Src: /src/memcached/proxy_request.c:667,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_request.c:667,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:670,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_request.c:672,1
    - Dst: mcmc_token_has_flag
      Src: /src/memcached/proxy_request.c:677,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_request.c:678,1
    - Dst: _mcplib_request_match_check
      Src: /src/memcached/proxy_request.c:679,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:682,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_request.c:683,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:687,1
    - Dst: lua_pushstring
      Src: /src/memcached/proxy_request.c:690,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_request.c:695,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_request.c:696,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 698
    functionName: mcplib_request_match_res
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - mcmc_parse_buf
    - mcmc_tokenize_res
    - luaL_checkudata
    - lua_pushnil
    - mcmc_token_has_flag
    - mcmc_token_get_flag
    - _mcplib_request_match_check
    - lua_pushstring
    - MCP_PARSER_KEY
    - lua_pushboolean
    linkageType: ''
    returnType: int
    signature: int mcplib_request_match_res(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/proxy_request.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - rq
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 711
    functionName: mcp_request_cleanup
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mcp_request_cleanup(LIBEVENT_THREAD *t, mcp_request_t *rq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_request.c:714,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_request.c:715,1
    - Dst: mcp_request_cleanup
      Src: /src/memcached/proxy_request.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 719
    functionName: mcplib_request_gc
    functionSourceFile: /src/memcached/proxy_request.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - PROXY_GET_THR
    - mcp_request_cleanup
    linkageType: ''
    returnType: int
    signature: int mcplib_request_gc(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 4
    argNames:
    - src
    - len
    - out
    - out_len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 139
    functionName: base64_encode
    functionSourceFile: /src/memcached/base64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t base64_encode(const unsigned char *src, size_t len,\n                  unsigned
      char *out, size_t out_len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - src
    - len
    - out
    - out_len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 205
    functionName: base64_decode
    functionSourceFile: /src/memcached/base64.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t base64_decode(const unsigned char *src, size_t len,\n                  unsigned
      char *out, size_t out_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - L
    - t
    argTypes:
    - lua_State*
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: _proxy_advance_lastkb
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - lua_gc
    linkageType: ''
    returnType: void
    signature: void _proxy_advance_lastkb(lua_State *L, LIBEVENT_THREAD *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:55,1
    - Dst: WSTAT_L
      Src: /src/memcached/proto_proxy.c:56,1
    - Dst: WSTAT_UL
      Src: /src/memcached/proto_proxy.c:58,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:79,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:82,1
    - Dst: _proxy_advance_lastkb
      Src: /src/memcached/proto_proxy.c:90,1
    - Dst: WSTAT_L
      Src: /src/memcached/proto_proxy.c:93,1
    - Dst: WSTAT_UL
      Src: /src/memcached/proto_proxy.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - t
    argTypes:
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 103
    functionName: proxy_gc_poke
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - WSTAT_L
    - lua_gc
    - _proxy_advance_lastkb
    - WSTAT_UL
    linkageType: ''
    returnType: void
    signature: void proxy_gc_poke(LIBEVENT_THREAD *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_add
      Src: /src/memcached/proto_proxy.c:113,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:116,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:130,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: proxy_gc_timerpoke
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - lua_gc
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void proxy_gc_timerpoke(evutil_socket_t fd, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - len
    argTypes:
    - LIBEVENT_THREAD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: proxy_bufmem_checkadd
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool proxy_bufmem_checkadd(LIBEVENT_THREAD *t, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAT_L
      Src: /src/memcached/proto_proxy.c:158,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:159,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:160,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:161,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:162,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:163,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:164,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:165,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:166,1
    - Dst: STAT_UL
      Src: /src/memcached/proto_proxy.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - arg
    - add_stats
    - c
    argTypes:
    - void*
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: proxy_stats
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 3
    functionsReached:
    - STAT_UL
    - APPEND_STAT
    - STAT_L
    linkageType: ''
    returnType: void
    signature: void proxy_stats(void *arg, ADD_STAT add_stats, void *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STAT_L
      Src: /src/memcached/proto_proxy.c:181,1
    - Dst: memset
      Src: /src/memcached/proto_proxy.c:189,1
    - Dst: get_worker_thread
      Src: /src/memcached/proto_proxy.c:194,1
    - Dst: WSTAT_L
      Src: /src/memcached/proto_proxy.c:197,1
    - Dst: WSTAT_UL
      Src: /src/memcached/proto_proxy.c:208,1
    - Dst: strlen
      Src: /src/memcached/proto_proxy.c:217,1
    - Dst: strlen
      Src: /src/memcached/proto_proxy.c:221,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:227,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:228,1
    - Dst: itoa_u64
      Src: /src/memcached/proto_proxy.c:234,1
    - Dst: add_stats
      Src: /src/memcached/proto_proxy.c:236,1
    - Dst: STAT_UL
      Src: /src/memcached/proto_proxy.c:241,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:255,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:256,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:257,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:258,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:259,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:260,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:261,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:262,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:263,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:264,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:265,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:266,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:267,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:268,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:269,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:270,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:271,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:272,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:273,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:274,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:275,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:276,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:277,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:278,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 74
    argCount: 3
    argNames:
    - arg
    - add_stats
    - c
    argTypes:
    - void*
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 280
    functionName: process_proxy_stats
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 2
    functionsReached:
    - WSTAT_L
    - itoa_u64
    - add_stats
    - STAT_UL
    - strlen
    - APPEND_STAT
    - STAT_L
    - WSTAT_UL
    - get_worker_thread
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void process_proxy_stats(void *arg, ADD_STAT add_stats, void *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:289,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:292,1
    - Dst: lua_next
      Src: /src/memcached/proto_proxy.c:293,1
    - Dst: lua_tointeger
      Src: /src/memcached/proto_proxy.c:294,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:295,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proto_proxy.c:298,1
    - Dst: lua_rawget
      Src: /src/memcached/proto_proxy.c:299,1
    - Dst: lua_tointeger
      Src: /src/memcached/proto_proxy.c:300,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:301,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:304,1
    - Dst: snprintf
      Src: /src/memcached/proto_proxy.c:305,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:306,1
    - Dst: snprintf
      Src: /src/memcached/proto_proxy.c:307,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:308,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - arg
    - add_stats
    - c
    argTypes:
    - void*
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: process_proxy_funcstats
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 2
    functionsReached:
    - lua_pop
    - lua_rawget
    - lua_pushnil
    - lua_pushvalue
    - pthread_mutex_unlock
    - snprintf
    - pthread_mutex_lock
    - APPEND_STAT
    - lua_tostring
    - lua_next
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void process_proxy_funcstats(void *arg, ADD_STAT add_stats, void *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:325,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:328,1
    - Dst: lua_next
      Src: /src/memcached/proto_proxy.c:329,1
    - Dst: lua_tointeger
      Src: /src/memcached/proto_proxy.c:330,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:331,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:334,1
    - Dst: snprintf
      Src: /src/memcached/proto_proxy.c:335,1
    - Dst: APPEND_STAT
      Src: /src/memcached/proto_proxy.c:336,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:340,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:341,1
    - Dst: lua_setfield
      Src: /src/memcached/proto_proxy.c:342,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - arg
    - add_stats
    - c
    argTypes:
    - void*
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 347
    functionName: process_proxy_bestats
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 2
    functionsReached:
    - lua_pop
    - lua_setfield
    - lua_pushnil
    - pthread_mutex_unlock
    - snprintf
    - pthread_mutex_lock
    - APPEND_STAT
    - lua_tostring
    - lua_next
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void process_proxy_bestats(void *arg, ADD_STAT add_stats, void *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/proto_proxy.c:351,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proto_proxy.c:355,1
    - Dst: pthread_cond_init
      Src: /src/memcached/proto_proxy.c:356,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proto_proxy.c:357,1
    - Dst: pthread_cond_init
      Src: /src/memcached/proto_proxy.c:358,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proto_proxy.c:359,1
    - Dst: pthread_cond_init
      Src: /src/memcached/proto_proxy.c:360,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proto_proxy.c:361,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proto_proxy.c:380,1
    - Dst: calloc
      Src: /src/memcached/proto_proxy.c:383,1
    - Dst: lua_newstate
      Src: /src/memcached/proto_proxy.c:385,1
    - Dst: luaL_newstate
      Src: /src/memcached/proto_proxy.c:387,1
    - Dst: luaL_openlibs
      Src: /src/memcached/proto_proxy.c:390,1
    - Dst: proxy_register_libs
      Src: /src/memcached/proto_proxy.c:392,1
    - Dst: lua_newtable
      Src: /src/memcached/proto_proxy.c:394,1
    - Dst: luaL_ref
      Src: /src/memcached/proto_proxy.c:395,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proto_proxy.c:400,1
    - Dst: luaL_newstate
      Src: /src/memcached/proto_proxy.c:401,1
    - Dst: luaL_openlibs
      Src: /src/memcached/proto_proxy.c:402,1
    - Dst: lua_newtable
      Src: /src/memcached/proto_proxy.c:405,1
    - Dst: lua_newtable
      Src: /src/memcached/proto_proxy.c:406,1
    - Dst: lua_newtable
      Src: /src/memcached/proto_proxy.c:407,1
    - Dst: calloc
      Src: /src/memcached/proto_proxy.c:411,1
    - Dst: proxy_init_event_thread
      Src: /src/memcached/proto_proxy.c:413,1
    - Dst: pthread_create
      Src: /src/memcached/proto_proxy.c:415,1
    - Dst: thread_setname
      Src: /src/memcached/proto_proxy.c:416,1
    - Dst: _start_proxy_config_threads
      Src: /src/memcached/proto_proxy.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 2
    argNames:
    - use_uring
    - proxy_memprofile
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 420
    functionName: proxy_init
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 1
    functionsReached:
    - luaL_openlibs
    - STAILQ_INIT
    - _start_proxy_config_threads
    - lua_newstate
    - proxy_register_libs
    - pthread_create
    - thread_setname
    - pthread_mutex_init
    - luaL_ref
    - pthread_cond_init
    - luaL_newstate
    - lua_newtable
    - proxy_init_event_thread
    - calloc
    linkageType: ''
    returnType: void
    signature: void *proxy_init(bool use_uring, bool proxy_memprofile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:424,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:425,1
    - Dst: calloc
      Src: /src/memcached/proto_proxy.c:428,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:430,1
    - Dst: exit
      Src: /src/memcached/proto_proxy.c:431,1
    - Dst: calloc
      Src: /src/memcached/proto_proxy.c:433,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:435,1
    - Dst: exit
      Src: /src/memcached/proto_proxy.c:436,1
    - Dst: calloc
      Src: /src/memcached/proto_proxy.c:444,1
    - Dst: lua_newstate
      Src: /src/memcached/proto_proxy.c:446,1
    - Dst: luaL_newstate
      Src: /src/memcached/proto_proxy.c:448,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:457,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:458,1
    - Dst: luaL_openlibs
      Src: /src/memcached/proto_proxy.c:460,1
    - Dst: proxy_register_libs
      Src: /src/memcached/proto_proxy.c:461,1
    - Dst: rand
      Src: /src/memcached/proto_proxy.c:464,1
    - Dst: lua_gc
      Src: /src/memcached/proto_proxy.c:468,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:469,1
    - Dst: evtimer_new
      Src: /src/memcached/proto_proxy.c:470,1
    - Dst: proxy_gc_timerpoke
      Src: /src/memcached/proto_proxy.c:472,1
    - Dst: calloc
      Src: /src/memcached/proto_proxy.c:475,1
    - Dst: proxy_init_event_thread
      Src: /src/memcached/proto_proxy.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - thr
    argTypes:
    - void*
    - LIBEVENT_THREAD*
    assertStmts:
    - condition: (thr->proxy_vm_last_kb != 0)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/memcached/proto_proxy.c
    - condition: (ctx != NULL)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/memcached/proto_proxy.c
    - condition: (thr != NULL)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 478
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 478
    functionName: proxy_thread_init
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 1
    functionsReached:
    - luaL_openlibs
    - fprintf
    - lua_newstate
    - proxy_register_libs
    - exit
    - evtimer_new
    - assert
    - proxy_gc_timerpoke
    - rand
    - luaL_newstate
    - lua_gc
    - proxy_init_event_thread
    - calloc
    linkageType: ''
    returnType: void
    signature: void proxy_thread_init(void *ctx, LIBEVENT_THREAD *thr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_INIT
      Src: /src/memcached/proto_proxy.c:484,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/proto_proxy.c:485,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proto_proxy.c:487,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/proto_proxy.c:489,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/proto_proxy.c:490,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:491,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:494,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:495,1
    - Dst: conn_io_queue_return
      Src: /src/memcached/proto_proxy.c:498,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proto_proxy.c:504,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proto_proxy.c:507,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:508,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proto_proxy.c:512,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proto_proxy.c:520,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:522,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:524,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proto_proxy.c:525,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/proto_proxy.c:528,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:530,1
    - Dst: write
      Src: /src/memcached/proto_proxy.c:538,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:539,1
    - Dst: write
      Src: /src/memcached/proto_proxy.c:542,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:543,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/proto_proxy.c:549,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:550,1
    - Dst: proxy_run_backend_queue
      Src: /src/memcached/proto_proxy.c:552,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - q
    argTypes:
    - io_queue_t*
    assertStmts:
    - condition: (be->depth > -1)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/memcached/proto_proxy.c
    - condition: (1 == 0)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/memcached/proto_proxy.c
    - condition: (p->backend == NULL)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/memcached/proto_proxy.c
    - condition: (1 == 0)
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 555
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 555
    functionName: proxy_submit_cb
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - write
    - STAILQ_INIT
    - STAILQ_EMPTY
    - proxy_run_backend_queue
    - STAILQ_CONCAT
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAILQ_INSERT_TAIL
    - STAILQ_FIRST
    - conn_io_queue_return
    - assert
    - STAILQ_REMOVE_HEAD
    - P_DEBUG
    linkageType: ''
    returnType: void
    signature: void proxy_submit_cb(io_queue_t *q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_rotate
      Src: /src/memcached/proto_proxy.c:569,1
    - Dst: lua_settop
      Src: /src/memcached/proto_proxy.c:570,1
    - Dst: proxy_run_rcontext
      Src: /src/memcached/proto_proxy.c:574,1
    - Dst: do_cache_free
      Src: /src/memcached/proto_proxy.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pending
    argTypes:
    - io_pending_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 582
    functionName: proxy_return_rctx_cb
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - lua_settop
    - proxy_run_rcontext
    - lua_rotate
    - do_cache_free
    linkageType: ''
    returnType: void
    signature: void proxy_return_rctx_cb(io_pending_t *pending)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:594,1
    - Dst: item_unlink
      Src: /src/memcached/proto_proxy.c:598,1
    - Dst: item_remove
      Src: /src/memcached/proto_proxy.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pending
    argTypes:
    - io_pending_t*
    assertStmts:
    - condition: (p->active == false)
      pos:
        line_end: 593
        line_start: 593
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: proxy_finalize_rctx_cb
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - item_unlink
    - item_remove
    - assert
    linkageType: ''
    returnType: void
    signature: void proxy_finalize_rctx_cb(io_pending_t *pending)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/memcached/proto_proxy.c:611,1
    - Dst: strncmp
      Src: /src/memcached/proto_proxy.c:624,1
    - Dst: strncmp
      Src: /src/memcached/proto_proxy.c:624,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:626,1
    - Dst: rbuf_switch_to_malloc
      Src: /src/memcached/proto_proxy.c:634,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:635,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:645,1
    - Dst: proxy_process_command
      Src: /src/memcached/proto_proxy.c:648,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:653,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (cont <= (c->rcurr + c->rbytes))
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/memcached/proto_proxy.c
    - condition: (c->rcurr <= (c->rbuf + c->rsize))
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 657
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 657
    functionName: try_read_command_proxy
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 1
    functionsReached:
    - strncmp
    - rbuf_switch_to_malloc
    - memchr
    - proxy_process_command
    - assert
    - conn_set_state
    linkageType: ''
    returnType: int
    signature: int try_read_command_proxy(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:662,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:664,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proto_proxy.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c->proxy_rctx)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/memcached/proto_proxy.c
    - condition: (rctx->pending_reqs == 1)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 669
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 669
    functionName: proxy_cleanup_conn
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 1
    functionsReached:
    - assert
    - mcp_funcgen_return_rctx
    linkageType: ''
    returnType: void
    signature: void proxy_cleanup_conn(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:673,1
    - Dst: complete_nread_ascii
      Src: /src/memcached/proto_proxy.c:679,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:683,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:685,1
    - Dst: strncmp
      Src: /src/memcached/proto_proxy.c:690,1
    - Dst: lua_settop
      Src: /src/memcached/proto_proxy.c:691,1
    - Dst: out_string
      Src: /src/memcached/proto_proxy.c:694,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proto_proxy.c:696,1
    - Dst: conn_resp_suspend
      Src: /src/memcached/proto_proxy.c:708,1
    - Dst: proxy_run_rcontext
      Src: /src/memcached/proto_proxy.c:709,1
    - Dst: lua_settop
      Src: /src/memcached/proto_proxy.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/memcached/proto_proxy.c
    - condition: (c->proxy_rctx)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 714
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 714
    functionName: complete_nread_proxy
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 1
    functionsReached:
    - mcp_funcgen_return_rctx
    - strncmp
    - complete_nread_ascii
    - proxy_run_rcontext
    - assert
    - conn_set_state
    - lua_settop
    - out_string
    - conn_resp_suspend
    linkageType: ''
    returnType: void
    signature: void complete_nread_proxy(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushstring
      Src: /src/memcached/proto_proxy.c:720,1
    - Dst: lua_error
      Src: /src/memcached/proto_proxy.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - L
    - s
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: proxy_lua_error
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 28
    functionsReached:
    - lua_error
    - lua_pushstring
    linkageType: ''
    returnType: void
    signature: void proxy_lua_error(lua_State *L, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/proto_proxy.c:727,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:729,1
    - Dst: resp_reset
      Src: /src/memcached/proto_proxy.c:731,1
    - Dst: strlen
      Src: /src/memcached/proto_proxy.c:735,1
    - Dst: strlen
      Src: /src/memcached/proto_proxy.c:739,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:743,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:746,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:749,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_proxy.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - resp
    - type
    - str
    argTypes:
    - mc_resp*
    - char*
    - char*
    assertStmts:
    - condition: (resp != NULL)
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 752
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 752
    functionName: proxy_out_errstring
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - resp_reset
    - strlen
    - assert
    - resp_add_iov
    - memcpy
    linkageType: ''
    returnType: void
    signature: void proxy_out_errstring(mc_resp *resp, char *type, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proto_proxy.c:760,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - resp
    - rq
    - r
    argTypes:
    - mc_resp*
    - mcp_request_t*
    - mcp_resp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 774
    functionName: _set_noreply_mode
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - mcmc_token_has_flag_bit
    linkageType: ''
    returnType: void
    signature: void _set_noreply_mode(mc_resp *resp, mcp_request_t *rq, mcp_resp_t
      *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcp_run_rcontext_handle
      Src: /src/memcached/proto_proxy.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - mcp_rcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: _proxy_run_rcontext_queues
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - mcp_run_rcontext_handle
    linkageType: ''
    returnType: void
    signature: void _proxy_run_rcontext_queues(mcp_rcontext_t *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - tresp
    - resp
    argTypes:
    - mc_resp*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 815
    functionName: _proxy_run_tresp_to_resp
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _proxy_run_tresp_to_resp(mc_resp *tresp, mc_resp *resp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:820,1
    - Dst: lua_resume
      Src: /src/memcached/proto_proxy.c:821,1
    - Dst: lua_type
      Src: /src/memcached/proto_proxy.c:829,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:831,1
    - Dst: luaL_testudata
      Src: /src/memcached/proto_proxy.c:832,1
    - Dst: _set_noreply_mode
      Src: /src/memcached/proto_proxy.c:833,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:835,1
    - Dst: _proxy_run_tresp_to_resp
      Src: /src/memcached/proto_proxy.c:839,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_proxy.c:851,1
    - Dst: lua_tolstring
      Src: /src/memcached/proto_proxy.c:862,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:864,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_proxy.c:865,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:866,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:868,1
    - Dst: memcmp
      Src: /src/memcached/proto_proxy.c:876,1
    - Dst: conn_resp_unsuspend
      Src: /src/memcached/proto_proxy.c:886,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proto_proxy.c:889,1
    - Dst: lua_tointeger
      Src: /src/memcached/proto_proxy.c:894,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:895,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:896,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:897,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proto_proxy.c:904,1
    - Dst: mcplib_internal_run
      Src: /src/memcached/proto_proxy.c:908,1
    - Dst: proxy_run_rcontext
      Src: /src/memcached/proto_proxy.c:914,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:918,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:919,1
    - Dst: _proxy_run_rcontext_queues
      Src: /src/memcached/proto_proxy.c:927,1
    - Dst: abort
      Src: /src/memcached/proto_proxy.c:933,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:939,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:939,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proto_proxy.c:940,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:940,1
    - Dst: luaL_traceback
      Src: /src/memcached/proto_proxy.c:942,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:942,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:943,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:943,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:946,1
    - Dst: conn_resp_unsuspend
      Src: /src/memcached/proto_proxy.c:947,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proto_proxy.c:950,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 100
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - mcp_rcontext_t*
    assertStmts:
    - condition: (res < 0)
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/memcached/proto_proxy.c
    - condition: (rctx->lua_narg != 0)
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/memcached/proto_proxy.c
    - condition: (yield_type != 0)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 957
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 957
    functionName: proxy_run_rcontext
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 3
    functionsReached:
    - mcp_funcgen_return_rctx
    - lua_type
    - proxy_out_errstring
    - lua_tostring
    - luaL_traceback
    - lua_pop
    - LOGGER_LOG
    - proxy_run_rcontext
    - assert
    - resp_add_iov
    - lua_tolstring
    - _proxy_run_rcontext_queues
    - _proxy_run_tresp_to_resp
    - luaL_testudata
    - memcmp
    - _set_noreply_mode
    - memcpy
    - fprintf
    - mcplib_internal_run
    - conn_resp_unsuspend
    - lua_resume
    - abort
    - P_DEBUG
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int proxy_run_rcontext(mcp_rcontext_t *rctx)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:966,1
    - Dst: process_request
      Src: /src/memcached/proto_proxy.c:978,1
    - Dst: WSTAT_INCR
      Src: /src/memcached/proto_proxy.c:980,1
    - Dst: resp_start
      Src: /src/memcached/proto_proxy.c:981,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:982,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:985,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:988,1
    - Dst: process_command_ascii
      Src: /src/memcached/proto_proxy.c:1012,1
    - Dst: resp_start
      Src: /src/memcached/proto_proxy.c:1032,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1033,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:1036,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:1040,1
    - Dst: resp_start
      Src: /src/memcached/proto_proxy.c:1054,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1055,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:1058,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:1061,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:1065,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:1068,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:1072,1
    - Dst: proxy_process_command
      Src: /src/memcached/proto_proxy.c:1073,1
    - Dst: memchr
      Src: /src/memcached/proto_proxy.c:1091,1
    - Dst: resp_start
      Src: /src/memcached/proto_proxy.c:1103,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1104,1
    - Dst: memcpy
      Src: /src/memcached/proto_proxy.c:1112,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_proxy.c:1113,1
    - Dst: WSTAT_INCR
      Src: /src/memcached/proto_proxy.c:1121,1
    - Dst: resp_start
      Src: /src/memcached/proto_proxy.c:1122,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1123,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:1126,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1127,1
    - Dst: resp_start
      Src: /src/memcached/proto_proxy.c:1131,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1132,1
    - Dst: WSTAT_L
      Src: /src/memcached/proto_proxy.c:1141,1
    - Dst: WSTAT_UL
      Src: /src/memcached/proto_proxy.c:1145,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:1148,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1151,1
    - Dst: mcp_funcgen_start
      Src: /src/memcached/proto_proxy.c:1157,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:1159,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1162,1
    - Dst: mcp_set_request
      Src: /src/memcached/proto_proxy.c:1167,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proto_proxy.c:1179,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proto_proxy.c:1180,1
    - Dst: proxy_bufmem_checkadd
      Src: /src/memcached/proto_proxy.c:1186,1
    - Dst: malloc
      Src: /src/memcached/proto_proxy.c:1190,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proto_proxy.c:1195,1
    - Dst: lua_settop
      Src: /src/memcached/proto_proxy.c:1197,1
    - Dst: proxy_out_errstring
      Src: /src/memcached/proto_proxy.c:1198,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1200,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_proxy.c:1210,1
    - Dst: conn_resp_suspend
      Src: /src/memcached/proto_proxy.c:1214,1
    - Dst: proxy_run_rcontext
      Src: /src/memcached/proto_proxy.c:1215,1
    - Dst: lua_settop
      Src: /src/memcached/proto_proxy.c:1217,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 155
    argCount: 4
    argNames:
    - c
    - command
    - cmdlen
    - multiget
    argTypes:
    - conn*
    - char*
    - size_t
    - bool
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/memcached/proto_proxy.c
    - condition: (pr.request[pr.reqlen-1] == '\n')
      pos:
        line_end: 1039
        line_start: 1039
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 1218
      start: 965
    functionDepth: 4
    functionLinenumber: 965
    functionLinenumberEnd: 1218
    functionName: proxy_process_command
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 2
    functionsReached:
    - resp_start
    - WSTAT_L
    - mcp_funcgen_return_rctx
    - process_request
    - proxy_process_command
    - mcp_set_request
    - proxy_out_errstring
    - WSTAT_INCR
    - proxy_run_rcontext
    - assert
    - conn_set_state
    - WSTAT_UL
    - resp_add_iov
    - lua_rawgeti
    - malloc
    - memchr
    - conn_resp_suspend
    - memcpy
    - process_command_ascii
    - proxy_bufmem_checkadd
    - mcp_funcgen_start
    - lua_settop
    - P_DEBUG
    linkageType: ''
    returnType: void
    signature: void proxy_process_command(conn *c, char *command, size_t cmdlen, bool
      multiget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proto_proxy.c:1221,1
    - Dst: memset
      Src: /src/memcached/proto_proxy.c:1224,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:1226,1
    - Dst: gettimeofday
      Src: /src/memcached/proto_proxy.c:1227,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proto_proxy.c:1229,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proto_proxy.c:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - L
    - t
    argTypes:
    - lua_State*
    - LIBEVENT_THREAD*
    assertStmts:
    - condition: (r->thread != NULL)
      pos:
        line_end: 1225
        line_start: 1225
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 1233
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1233
    functionName: mcp_prep_bare_resobj
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - luaL_getmetatable
    - lua_newuserdatauv
    - assert
    - memset
    - lua_setmetatable
    linkageType: ''
    returnType: mcp_resp_t
    signature: mcp_resp_t *mcp_prep_bare_resobj(lua_State *L, LIBEVENT_THREAD *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/proto_proxy.c:1236,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:1238,1
    - Dst: gettimeofday
      Src: /src/memcached/proto_proxy.c:1239,1
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proto_proxy.c:1247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - r
    - rq
    - be
    - t
    argTypes:
    - mcp_resp_t*
    - mcp_request_t*
    - mcp_backend_t*
    - LIBEVENT_THREAD*
    assertStmts:
    - condition: (r->thread != NULL)
      pos:
        line_end: 1237
        line_start: 1237
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 1263
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1263
    functionName: mcp_set_resobj
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - mcmc_token_has_flag_bit
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void mcp_set_resobj(mcp_resp_t *r, mcp_request_t *rq, mcp_backend_t
      *be, LIBEVENT_THREAD *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/memcached/proto_proxy.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - mcp_resp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1271
    functionName: mcp_resp_set_elapsed
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 3
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void mcp_resp_set_elapsed(mcp_resp_t *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: thread_io_queue_get
      Src: /src/memcached/proto_proxy.c:1279,1
    - Dst: do_cache_alloc
      Src: /src/memcached/proto_proxy.c:1280,1
    - Dst: WSTAT_INCR
      Src: /src/memcached/proto_proxy.c:1282,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proto_proxy.c:1283,1
    - Dst: assert
      Src: /src/memcached/proto_proxy.c:1290,1
    - Dst: memset
      Src: /src/memcached/proto_proxy.c:1291,1
    - Dst: mcp_request_attach
      Src: /src/memcached/proto_proxy.c:1308,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proto_proxy.c:1312,1
    - Dst: P_DEBUG
      Src: /src/memcached/proto_proxy.c:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - rctx
    - rq
    - be
    - r
    argTypes:
    - mcp_rcontext_t*
    - mcp_request_t*
    - mcp_backend_t*
    - mcp_resp_t*
    assertStmts:
    - condition: (sizeof(io_pending_t) >= sizeof(io_pending_proxy_t))
      pos:
        line_end: 1289
        line_start: 1289
        source_file: /src/memcached/proto_proxy.c
    constantsTouched: []
    func_position:
      end: 1316
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1316
    functionName: mcp_queue_rctx_io
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - WSTAT_INCR
    - thread_io_queue_get
    - mcp_request_attach
    - STAILQ_INSERT_TAIL
    - assert
    - P_DEBUG
    - proxy_lua_error
    - do_cache_alloc
    - memset
    linkageType: ''
    returnType: io_pending_proxy_t
    signature: io_pending_proxy_t *mcp_queue_rctx_io(mcp_rcontext_t *rctx, mcp_request_t
      *rq, mcp_backend_t *be, mcp_resp_t *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:1321,1
    - Dst: lua_getfield
      Src: /src/memcached/proto_proxy.c:1323,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1324,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proto_proxy.c:1325,1
    - Dst: lua_setfield
      Src: /src/memcached/proto_proxy.c:1326,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proto_proxy.c:1328,1
    - Dst: lua_arith
      Src: /src/memcached/proto_proxy.c:1329,1
    - Dst: lua_setfield
      Src: /src/memcached/proto_proxy.c:1330,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:1333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - tidx
    - name
    - delta
    argTypes:
    - proxy_ctx_t*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1334
    functionName: mcp_sharedvm_delta
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 4
    functionsReached:
    - lua_pop
    - lua_setfield
    - lua_arith
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - lua_getfield
    - lua_pushinteger
    linkageType: ''
    returnType: void
    signature: void mcp_sharedvm_delta(proxy_ctx_t *ctx, int tidx, const char *name,
      int delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:1338,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:1340,1
    - Dst: lua_setfield
      Src: /src/memcached/proto_proxy.c:1341,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - tidx
    - name
    argTypes:
    - proxy_ctx_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1344
    functionName: mcp_sharedvm_remove
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - lua_setfield
    - pthread_mutex_lock
    - lua_pushnil
    linkageType: ''
    returnType: void
    signature: void mcp_sharedvm_remove(proxy_ctx_t *ctx, int tidx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:1355,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proto_proxy.c:1356,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/proto_proxy.c:1357,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - g
    argTypes:
    - proxy_ctx_t*
    - struct mcp_globalobj_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1359
    functionName: mcp_gobj_enqueue
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - STAILQ_INSERT_TAIL
    - pthread_mutex_unlock
    - pthread_cond_signal
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void mcp_gobj_enqueue(proxy_ctx_t *ctx, struct mcp_globalobj_s *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:1364,1
    - Dst: luaL_ref
      Src: /src/memcached/proto_proxy.c:1376,1
    - Dst: PROXY_GET_CTX
      Src: /src/memcached/proto_proxy.c:1378,1
    - Dst: mcp_gobj_enqueue
      Src: /src/memcached/proto_proxy.c:1379,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1381,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - L
    - g
    argTypes:
    - lua_State*
    - struct mcp_globalobj_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1385
    functionName: mcp_gobj_ref
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 1
    functionsReached:
    - lua_pop
    - mcp_gobj_enqueue
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - luaL_ref
    - PROXY_GET_CTX
    linkageType: ''
    returnType: void
    signature: void mcp_gobj_ref(lua_State *L, struct mcp_globalobj_s *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_proxy.c:1388,1
    - Dst: mcp_gobj_enqueue
      Src: /src/memcached/proto_proxy.c:1391,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_proxy.c:1393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - g
    argTypes:
    - proxy_ctx_t*
    - struct mcp_globalobj_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1394
    functionName: mcp_gobj_unref
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - mcp_gobj_enqueue
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void mcp_gobj_unref(proxy_ctx_t *ctx, struct mcp_globalobj_s *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/memcached/proto_proxy.c:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct mcp_globalobj_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1398
    functionName: mcp_gobj_finalize
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void mcp_gobj_finalize(struct mcp_globalobj_s *g)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/memcached/proto_proxy.c:1404,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1447,1
    - Dst: free
      Src: /src/memcached/proto_proxy.c:1472,1
    - Dst: realloc
      Src: /src/memcached/proto_proxy.c:1475,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 4
    argNames:
    - ud
    - ptr
    - osize
    - nsize
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1477
    functionName: mcp_profile_alloc
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - realloc
    - free
    - fprintf
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: "void *mcp_profile_alloc(void *ud, void *ptr, size_t osize,\n                                            size_t
      nsize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/memcached/proto_proxy.c:1481,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1483,1
    - Dst: lua_type
      Src: /src/memcached/proto_proxy.c:1485,1
    - Dst: lua_getmetatable
      Src: /src/memcached/proto_proxy.c:1488,1
    - Dst: lua_pushstring
      Src: /src/memcached/proto_proxy.c:1489,1
    - Dst: lua_rawget
      Src: /src/memcached/proto_proxy.c:1490,1
    - Dst: lua_touserdata
      Src: /src/memcached/proto_proxy.c:1492,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1494,1
    - Dst: lua_typename
      Src: /src/memcached/proto_proxy.c:1494,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:1494,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1495,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1498,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1501,1
    - Dst: lua_typename
      Src: /src/memcached/proto_proxy.c:1501,1
    - Dst: lua_tostring
      Src: /src/memcached/proto_proxy.c:1501,1
    - Dst: lua_touserdata
      Src: /src/memcached/proto_proxy.c:1504,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1506,1
    - Dst: lua_typename
      Src: /src/memcached/proto_proxy.c:1506,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1510
    functionName: dump_stack
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - lua_pop
    - lua_rawget
    - lua_typename
    - lua_touserdata
    - lua_pushstring
    - lua_gettop
    - lua_type
    - lua_getmetatable
    - lua_tostring
    linkageType: ''
    returnType: void
    signature: void dump_stack(lua_State *L, const char *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_rawlen
      Src: /src/memcached/proto_proxy.c:1517,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1518,1
    - Dst: lua_absindex
      Src: /src/memcached/proto_proxy.c:1520,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:1526,1
    - Dst: lua_next
      Src: /src/memcached/proto_proxy.c:1527,1
    - Dst: dump_stack
      Src: /src/memcached/proto_proxy.c:1528,1
    - Dst: lua_type
      Src: /src/memcached/proto_proxy.c:1529,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1541,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1543,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1544,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1545,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1546,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1547,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1548,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1550
    functionName: dump_registry
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - dump_stack
    - lua_pop
    - lua_pushnil
    - lua_absindex
    - lua_type
    - lua_next
    - lua_rawlen
    linkageType: ''
    returnType: void
    signature: void dump_registry(lua_State *L, const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_rawlen
      Src: /src/memcached/proto_proxy.c:1556,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1557,1
    - Dst: lua_absindex
      Src: /src/memcached/proto_proxy.c:1559,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:1560,1
    - Dst: lua_next
      Src: /src/memcached/proto_proxy.c:1561,1
    - Dst: lua_type
      Src: /src/memcached/proto_proxy.c:1562,1
    - Dst: luaL_testudata
      Src: /src/memcached/proto_proxy.c:1564,1
    - Dst: strcmp
      Src: /src/memcached/proto_proxy.c:1565,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1566,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proto_proxy.c:1567,1
    - Dst: lua_absindex
      Src: /src/memcached/proto_proxy.c:1568,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:1569,1
    - Dst: lua_next
      Src: /src/memcached/proto_proxy.c:1570,1
    - Dst: lua_touserdata
      Src: /src/memcached/proto_proxy.c:1571,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1573,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1575,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1577,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1580,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - L
    - name
    - msg
    argTypes:
    - lua_State*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1583
    functionName: dump_funcgen
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - lua_getiuservalue
    - lua_pop
    - lua_pushnil
    - lua_absindex
    - lua_touserdata
    - luaL_testudata
    - lua_type
    - strcmp
    - lua_next
    - lua_rawlen
    linkageType: ''
    returnType: void
    signature: void dump_funcgen(lua_State *L, const char *name, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1586,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1593,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1597,1
    - Dst: event_pending
      Src: /src/memcached/proto_proxy.c:1598,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - mcp_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1603
    functionName: dump_pool_info
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - event_pending
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_pool_info(mcp_pool_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_rawlen
      Src: /src/memcached/proto_proxy.c:1610,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1611,1
    - Dst: lua_absindex
      Src: /src/memcached/proto_proxy.c:1613,1
    - Dst: lua_pushnil
      Src: /src/memcached/proto_proxy.c:1614,1
    - Dst: lua_next
      Src: /src/memcached/proto_proxy.c:1615,1
    - Dst: lua_type
      Src: /src/memcached/proto_proxy.c:1616,1
    - Dst: luaL_testudata
      Src: /src/memcached/proto_proxy.c:1618,1
    - Dst: dump_pool_info
      Src: /src/memcached/proto_proxy.c:1620,1
    - Dst: luaL_testudata
      Src: /src/memcached/proto_proxy.c:1622,1
    - Dst: dump_pool_info
      Src: /src/memcached/proto_proxy.c:1624,1
    - Dst: lua_pop
      Src: /src/memcached/proto_proxy.c:1628,1
    - Dst: fprintf
      Src: /src/memcached/proto_proxy.c:1630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1609
    functionDepth: 2
    functionLinenumber: 1609
    functionLinenumberEnd: 1632
    functionName: dump_pools
    functionSourceFile: /src/memcached/proto_proxy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - lua_pop
    - lua_pushnil
    - lua_absindex
    - dump_pool_info
    - luaL_testudata
    - lua_type
    - lua_next
    - lua_rawlen
    linkageType: ''
    returnType: void
    signature: void dump_pools(lua_State *L, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_64bits
      Src: /src/memcached/hash.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 13
    functionName: XXH3_hash
    functionSourceFile: /src/memcached/hash.c
    functionUses: 0
    functionsReached:
    - XXH3_64bits
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t XXH3_hash(const void *key, size_t length)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum hashfunc_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: hash_init
    functionSourceFile: /src/memcached/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hash_init(enum hashfunc_type type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:18,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:22,1
    - Dst: mcp_funcgen_cleanup
      Src: /src/memcached/proxy_luafgen.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts:
    - condition: (fgen->self_ref == 0)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: mcplib_funcgen_gc
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - mcp_funcgen_cleanup
    - assert
    linkageType: ''
    returnType: int
    signature: int mcplib_funcgen_gc(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_settop
      Src: /src/memcached/proxy_luafgen.c:36,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:41,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:47,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_luafgen.c:50,1
    - Dst: mcp_resume_rctx_from_cb
      Src: /src/memcached/proxy_luafgen.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 55
    functionName: mcp_funcgen_wait_handler
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - mcp_resume_rctx_from_cb
    - lua_pushboolean
    - lua_pushinteger
    - lua_settop
    linkageType: ''
    returnType: void
    signature: void mcp_funcgen_wait_handler(const int fd, const short which, void
      *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:64,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:65,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:67,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:69,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:79,1
    - Dst: mcp_rcontext_cleanup
      Src: /src/memcached/proxy_luafgen.c:80,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:80,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:81,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:83,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:87,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:92,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:105,1
    - Dst: event_pending
      Src: /src/memcached/proxy_luafgen.c:112,1
    - Dst: event_del
      Src: /src/memcached/proxy_luafgen.c:113,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_luafgen.c:116,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:117,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:119,1
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_luafgen.c:122,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_luafgen.c:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - L
    - fgen
    - rctx
    - fgen_idx
    argTypes:
    - lua_State*
    - mcp_funcgen_t*
    - mcp_rcontext_t*
    - int
    assertStmts:
    - condition: (rctx->pending_reqs == 0)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (1 == 0)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 127
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 127
    functionName: mcp_rcontext_cleanup
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - lua_getiuservalue
    - lua_pop
    - lua_rawgeti
    - PROXY_GET_THR
    - mcp_sharedvm_delta
    - luaL_unref
    - lua_absindex
    - event_pending
    - assert
    - event_del
    - mcp_rcontext_cleanup
    linkageType: ''
    returnType: void
    signature: void mcp_rcontext_cleanup(lua_State *L, mcp_funcgen_t *fgen, mcp_rcontext_t
      *rctx, int fgen_idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/memcached/proxy_luafgen.c:159,1
    - Dst: realloc
      Src: /src/memcached/proxy_luafgen.c:180,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:189,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:191,1
    - Dst: mcp_rcontext_cleanup
      Src: /src/memcached/proxy_luafgen.c:192,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:192,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:193,1
    - Dst: mcp_funcgen_cleanup
      Src: /src/memcached/proxy_luafgen.c:199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - fgen
    - rctx
    argTypes:
    - mcp_funcgen_t*
    - mcp_rcontext_t*
    assertStmts:
    - condition: (fgen->self_ref)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 201
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 201
    functionName: _mcplib_funcgen_cache
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - lua_absindex
    - assert
    - mcp_funcgen_cleanup
    - mcp_rcontext_cleanup
    - realloc
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: void _mcplib_funcgen_cache(mcp_funcgen_t *fgen, mcp_rcontext_t *rctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:205,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:206,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_luafgen.c:210,1
    - Dst: memset
      Src: /src/memcached/proxy_luafgen.c:211,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_luafgen.c:213,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_luafgen.c:214,1
    - Dst: mcp_prep_bare_resobj
      Src: /src/memcached/proxy_luafgen.c:227,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:228,1
    - Dst: mcp_funcgen_get_rctx
      Src: /src/memcached/proxy_luafgen.c:234,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:236,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:243,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:257,1
    - Dst: lua_rotate
      Src: /src/memcached/proxy_luafgen.c:262,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:268,1
    - Dst: lua_call
      Src: /src/memcached/proxy_luafgen.c:273,1
    - Dst: lua_isfunction
      Src: /src/memcached/proxy_luafgen.c:276,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:277,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:283,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_luafgen.c:288,1
    - Dst: lua_rotate
      Src: /src/memcached/proxy_luafgen.c:290,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:291,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:292,1
    - Dst: _mcplib_funcgen_cache
      Src: /src/memcached/proxy_luafgen.c:294,1
    - Dst: lua_newthread
      Src: /src/memcached/proxy_luafgen.c:297,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:298,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:299,1
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_luafgen.c:302,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_luafgen.c:303,1
    - Dst: event_assign
      Src: /src/memcached/proxy_luafgen.c:305,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts:
    - condition: (rc->Lc)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 311
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 311
    functionName: _mcplib_funcgen_gencall
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcplib_funcgen_cache
    - luaL_checkudata
    - lua_absindex
    - luaL_ref
    - proxy_lua_error
    - lua_isfunction
    - mcp_funcgen_get_rctx
    - lua_getiuservalue
    - luaL_getmetatable
    - lua_pop
    - mcp_sharedvm_delta
    - lua_newuserdatauv
    - lua_call
    - event_assign
    - assert
    - mcp_prep_bare_resobj
    - lua_rawgeti
    - PROXY_GET_THR
    - lua_pushvalue
    - lua_newthread
    - lua_rotate
    - memset
    - lua_setmetatable
    - luaL_unref
    linkageType: ''
    returnType: int
    signature: int _mcplib_funcgen_gencall(lua_State *L)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:315,1
    - Dst: lua_status
      Src: /src/memcached/proxy_luafgen.c:316,1
    - Dst: lua_resetthread
      Src: /src/memcached/proxy_luafgen.c:320,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:322,1
    - Dst: lua_newthread
      Src: /src/memcached/proxy_luafgen.c:324,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:325,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:326,1
    - Dst: lua_settop
      Src: /src/memcached/proxy_luafgen.c:329,1
    - Dst: mcp_request_cleanup
      Src: /src/memcached/proxy_luafgen.c:335,1
    - Dst: event_pending
      Src: /src/memcached/proxy_luafgen.c:339,1
    - Dst: event_del
      Src: /src/memcached/proxy_luafgen.c:340,1
    - Dst: mcp_response_cleanup
      Src: /src/memcached/proxy_luafgen.c:349,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:352,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:357,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:360,1
    - Dst: _mcp_funcgen_return_rctx
      Src: /src/memcached/proxy_luafgen.c:365,1
    - Dst: mcp_request_cleanup
      Src: /src/memcached/proxy_luafgen.c:376,1
    - Dst: mcp_response_cleanup
      Src: /src/memcached/proxy_luafgen.c:379,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - mcp_rcontext_t*
    assertStmts:
    - condition: (rctx->Lc)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (1 == 0)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (rctx->pending_reqs == 0)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (rqu->state != RQUEUE_ACTIVE)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 386
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 386
    functionName: _mcp_funcgen_return_rctx
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - mcp_response_cleanup
    - luaL_unref
    - _mcp_funcgen_return_rctx
    - lua_resetthread
    - event_pending
    - assert
    - luaL_ref
    - lua_newthread
    - lua_settop
    - lua_status
    - event_del
    - mcp_request_cleanup
    linkageType: ''
    returnType: void
    signature: void _mcp_funcgen_return_rctx(mcp_rcontext_t *rctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:401,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proxy_luafgen.c:403,1
    - Dst: WSTAT_DECR
      Src: /src/memcached/proxy_luafgen.c:407,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:408,1
    - Dst: _mcp_funcgen_return_rctx
      Src: /src/memcached/proxy_luafgen.c:409,1
    - Dst: _mcplib_funcgen_cache
      Src: /src/memcached/proxy_luafgen.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - mcp_rcontext_t*
    assertStmts:
    - condition: (rctx->parent->pending_reqs > -1)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (rctx->fgen->thread->stats.proxy_req_active >= 0)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 411
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 411
    functionName: mcp_funcgen_return_rctx
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 6
    functionsReached:
    - _mcplib_funcgen_cache
    - mcp_funcgen_return_rctx
    - WSTAT_DECR
    - assert
    - _mcp_funcgen_return_rctx
    linkageType: ''
    returnType: void
    signature: void mcp_funcgen_return_rctx(mcp_rcontext_t *rctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushcclosure
      Src: /src/memcached/proxy_luafgen.c:421,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:423,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:425,1
    - Dst: lua_pcall
      Src: /src/memcached/proxy_luafgen.c:427,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_luafgen.c:429,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_luafgen.c:429,1
    - Dst: lua_settop
      Src: /src/memcached/proxy_luafgen.c:430,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:433,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_luafgen.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - L
    - fgen_ref
    - fgen
    argTypes:
    - lua_State*
    - int
    - mcp_funcgen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 444
    functionName: mcp_funcgen_get_rctx
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - lua_pushcclosure
    - LOGGER_LOG
    - lua_tostring
    - P_DEBUG
    - lua_settop
    - lua_pcall
    linkageType: ''
    returnType: mcp_rcontext_t
    signature: mcp_rcontext_t *mcp_funcgen_get_rctx(lua_State *L, int fgen_ref, mcp_funcgen_t
      *fgen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mcp_funcgen_route
      Src: /src/memcached/proxy_luafgen.c:448,1
    - Dst: mcp_funcgen_get_rctx
      Src: /src/memcached/proxy_luafgen.c:455,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_luafgen.c:466,1
    - Dst: memset
      Src: /src/memcached/proxy_luafgen.c:467,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_luafgen.c:468,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_luafgen.c:469,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:471,1
    - Dst: WSTAT_INCR
      Src: /src/memcached/proxy_luafgen.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - L
    - fgen
    - pr
    argTypes:
    - lua_State*
    - mcp_funcgen_t*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 479
    functionName: mcp_funcgen_start
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - mcp_funcgen_get_rctx
    - WSTAT_INCR
    - luaL_getmetatable
    - lua_newuserdatauv
    - mcp_funcgen_route
    - luaL_ref
    - memset
    - lua_setmetatable
    linkageType: ''
    returnType: mcp_rcontext_t
    signature: mcp_rcontext_t *mcp_funcgen_start(lua_State *L, mcp_funcgen_t *fgen,
      mcp_parser_t *pr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/memcached/proxy_luafgen.c:485,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:489,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:490,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:492,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:499,1
    - Dst: mcp_funcgen_router_cleanup
      Src: /src/memcached/proxy_luafgen.c:504,1
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_luafgen.c:508,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_luafgen.c:509,1
    - Dst: mcp_rcontext_cleanup
      Src: /src/memcached/proxy_luafgen.c:517,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:521,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:526,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:535,1
    - Dst: mcp_funcgen_dereference
      Src: /src/memcached/proxy_luafgen.c:539,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:541,1
    - Dst: free
      Src: /src/memcached/proxy_luafgen.c:544,1
    - Dst: free
      Src: /src/memcached/proxy_luafgen.c:547,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:549,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - L
    - fgen
    argTypes:
    - lua_State*
    - mcp_funcgen_t*
    assertStmts:
    - condition: (1 == 0)
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 550
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 550
    functionName: mcp_funcgen_cleanup
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 2
    functionsReached:
    - free
    - lua_pop
    - lua_rawgeti
    - PROXY_GET_THR
    - mcp_funcgen_router_cleanup
    - mcp_sharedvm_delta
    - luaL_unref
    - lua_absindex
    - assert
    - lua_checkstack
    - mcp_funcgen_dereference
    - mcp_rcontext_cleanup
    linkageType: ''
    returnType: void
    signature: void mcp_funcgen_cleanup(lua_State *L, mcp_funcgen_t *fgen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:555,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:558,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:560,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_luafgen.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: mcp_funcgen_reference
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - luaL_checkudata
    - lua_pop
    - luaL_ref
    - P_DEBUG
    linkageType: ''
    returnType: void
    signature: void mcp_funcgen_reference(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:567,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_luafgen.c:569,1
    - Dst: P_DEBUG
      Src: /src/memcached/proxy_luafgen.c:573,1
    - Dst: mcp_funcgen_cleanup
      Src: /src/memcached/proxy_luafgen.c:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - L
    - fgen
    argTypes:
    - lua_State*
    - mcp_funcgen_t*
    assertStmts:
    - condition: (fgen->refcount > 0)
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 578
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 578
    functionName: mcp_funcgen_dereference
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 2
    functionsReached:
    - P_DEBUG
    - mcp_funcgen_cleanup
    - assert
    linkageType: ''
    returnType: void
    signature: void mcp_funcgen_dereference(lua_State *L, mcp_funcgen_t *fgen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:583,1
    - Dst: lua_upvalueindex
      Src: /src/memcached/proxy_luafgen.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: _mcplib_funcgenbare_generator
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_upvalueindex
    - lua_pushvalue
    linkageType: ''
    returnType: int
    signature: int _mcplib_funcgenbare_generator(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_isfunction
      Src: /src/memcached/proxy_luafgen.c:592,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:593,1
    - Dst: lua_pushcclosure
      Src: /src/memcached/proxy_luafgen.c:598,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:603,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:604,1
    - Dst: mcplib_funcgen_new
      Src: /src/memcached/proxy_luafgen.c:607,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:609,1
    - Dst: strncpy
      Src: /src/memcached/proxy_luafgen.c:610,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_luafgen.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 616
    functionName: mcplib_funcgenbare_new
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - lua_isfunction
    - mcplib_funcgen_new
    - lua_pushvalue
    - mcp_sharedvm_delta
    - lua_touserdata
    - lua_pushcclosure
    - strncpy
    - luaL_ref
    - proxy_lua_error
    linkageType: ''
    returnType: int
    signature: int mcplib_funcgenbare_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_luafgen.c:620,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_luafgen.c:622,1
    - Dst: memset
      Src: /src/memcached/proxy_luafgen.c:623,1
    - Dst: calloc
      Src: /src/memcached/proxy_luafgen.c:626,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_luafgen.c:628,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_luafgen.c:629,1
    - Dst: lua_createtable
      Src: /src/memcached/proxy_luafgen.c:632,1
    - Dst: lua_setiuservalue
      Src: /src/memcached/proxy_luafgen.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 638
    functionName: mcplib_funcgen_new
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - luaL_getmetatable
    - PROXY_GET_THR
    - lua_setiuservalue
    - lua_newuserdatauv
    - lua_setmetatable
    - lua_createtable
    - memset
    - calloc
    linkageType: ''
    returnType: int
    signature: int mcplib_funcgen_new(lua_State *L)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:641,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:647,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_luafgen.c:651,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_luafgen.c:653,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_luafgen.c:655,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:657,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:661,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:665,1
    - Dst: malloc
      Src: /src/memcached/proxy_luafgen.c:671,1
    - Dst: realloc
      Src: /src/memcached/proxy_luafgen.c:673,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:676,1
    - Dst: memset
      Src: /src/memcached/proxy_luafgen.c:681,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:685,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:690,1
    - Dst: mcp_funcgen_reference
      Src: /src/memcached/proxy_luafgen.c:695,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:700,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 702
    functionName: mcplib_funcgen_new_handle
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - malloc
    - lua_touserdata
    - luaL_testudata
    - luaL_ref
    - lua_pushinteger
    - realloc
    - proxy_lua_error
    - memset
    - mcp_funcgen_reference
    linkageType: ''
    returnType: int
    signature: int mcplib_funcgen_new_handle(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:705,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_luafgen.c:706,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:709,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:713,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:714,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:717,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:719,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:720,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:722,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:725,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_luafgen.c:727,1
    - Dst: strncpy
      Src: /src/memcached/proxy_luafgen.c:728,1
    - Dst: strncpy
      Src: /src/memcached/proxy_luafgen.c:730,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:731,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:734,1
    - Dst: luaL_checkinteger
      Src: /src/memcached/proxy_luafgen.c:735,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_luafgen.c:737,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:742,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:745,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:746,1
    - Dst: _mcplib_funcgen_gencall
      Src: /src/memcached/proxy_luafgen.c:747,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:748,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_luafgen.c:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 755
    functionName: mcplib_funcgen_ready
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_pop
    - proxy_lua_ferror
    - lua_rawgeti
    - lua_pushvalue
    - _mcplib_funcgen_gencall
    - lua_touserdata
    - mcp_sharedvm_delta
    - strncpy
    - lua_getfield
    - luaL_ref
    - proxy_lua_error
    - lua_tolstring
    - luaL_checkinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_funcgen_ready(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:760,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_luafgen.c:761,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_luafgen.c:762,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:764,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:766,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:772,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 777
    functionName: mcplib_rcontext_handle_set_cb
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - luaL_unref
    - lua_touserdata
    - luaL_ref
    - proxy_lua_error
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_handle_set_cb(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:787,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:793,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:802,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:803,1
    - Dst: lua_xmove
      Src: /src/memcached/proxy_luafgen.c:804,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - L
    - rctx
    - rq
    - handle
    argTypes:
    - lua_State*
    - mcp_rcontext_t*
    - mcp_request_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 812
    functionName: _mcplib_rcontext_queue
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - lua_pushvalue
    - luaL_ref
    - proxy_lua_error
    - lua_xmove
    linkageType: ''
    returnType: void
    signature: void _mcplib_rcontext_queue(lua_State *L, mcp_rcontext_t *rctx, mcp_request_t
      *rq, int handle)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:818,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:819,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:822,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:827,1
    - Dst: lua_type
      Src: /src/memcached/proxy_luafgen.c:831,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:833,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:835,1
    - Dst: _mcplib_rcontext_queue
      Src: /src/memcached/proxy_luafgen.c:836,1
    - Dst: lua_rawlen
      Src: /src/memcached/proxy_luafgen.c:838,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:840,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:842,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:846,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:847,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:849,1
    - Dst: _mcplib_rcontext_queue
      Src: /src/memcached/proxy_luafgen.c:850,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:853,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 858
    functionName: mcplib_rcontext_enqueue
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - lua_pushvalue
    - luaL_checkudata
    - lua_touserdata
    - lua_type
    - proxy_lua_error
    - _mcplib_rcontext_queue
    - lua_tointeger
    - lua_rawlen
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_enqueue(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcp_prep_bare_resobj
      Src: /src/memcached/proxy_luafgen.c:865,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:868,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:869,1
    - Dst: mcp_process_rqueue_return
      Src: /src/memcached/proxy_luafgen.c:870,1
    - Dst: mcp_process_rctx_wait
      Src: /src/memcached/proxy_luafgen.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - rctx
    - rqu
    argTypes:
    - mcp_rcontext_t*
    - struct mcp_rqueue_s*
    assertStmts:
    - condition: (rqu->res_ref == 0)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 874
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 874
    functionName: _mcp_resume_rctx_process_error
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - mcp_process_rctx_wait
    - assert
    - luaL_ref
    - mcp_prep_bare_resobj
    - mcp_process_rqueue_return
    linkageType: ''
    returnType: void
    signature: void _mcp_resume_rctx_process_error(mcp_rcontext_t *rctx, struct mcp_rqueue_s
      *rqu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcp_prep_bare_resobj
      Src: /src/memcached/proxy_luafgen.c:879,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:882,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:883,1
    - Dst: mcp_queue_rctx_io
      Src: /src/memcached/proxy_luafgen.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - rctx
    - rqu
    argTypes:
    - mcp_rcontext_t*
    - struct mcp_rqueue_s*
    assertStmts:
    - condition: (rqu->res_ref == 0)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 890
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 890
    functionName: _mcp_start_rctx_process_error
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - mcp_prep_bare_resobj
    - mcp_queue_rctx_io
    - assert
    - luaL_ref
    linkageType: ''
    returnType: void
    signature: void _mcp_start_rctx_process_error(mcp_rcontext_t *rctx, struct mcp_rqueue_s
      *rqu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: proxy_run_rcontext
      Src: /src/memcached/proxy_luafgen.c:893,1
    - Dst: lua_type
      Src: /src/memcached/proxy_luafgen.c:896,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_luafgen.c:898,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:900,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:901,1
    - Dst: mcp_queue_rctx_io
      Src: /src/memcached/proxy_luafgen.c:903,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:913,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:914,1
    - Dst: mcp_queue_rctx_io
      Src: /src/memcached/proxy_luafgen.c:917,1
    - Dst: _mcp_start_rctx_process_error
      Src: /src/memcached/proxy_luafgen.c:923,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:928,1
    - Dst: _mcp_start_rctx_process_error
      Src: /src/memcached/proxy_luafgen.c:929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - mcp_rcontext_t*
    assertStmts:
    - condition: (rqu->res_ref == 0)
      pos:
        line_end: 899
        line_start: 899
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (rqu->res_ref == 0)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 931
      start: 892
    functionDepth: 4
    functionLinenumber: 892
    functionLinenumberEnd: 931
    functionName: mcp_start_subrctx
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - luaL_testudata
    - lua_type
    - proxy_run_rcontext
    - assert
    - luaL_ref
    - mcp_queue_rctx_io
    - _mcp_start_rctx_process_error
    linkageType: ''
    returnType: void
    signature: void mcp_start_subrctx(mcp_rcontext_t *rctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: proxy_run_rcontext
      Src: /src/memcached/proxy_luafgen.c:934,1
    - Dst: lua_type
      Src: /src/memcached/proxy_luafgen.c:940,1
    - Dst: luaL_testudata
      Src: /src/memcached/proxy_luafgen.c:942,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:944,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:945,1
    - Dst: mcp_process_rqueue_return
      Src: /src/memcached/proxy_luafgen.c:946,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:951,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:952,1
    - Dst: _mcp_resume_rctx_process_error
      Src: /src/memcached/proxy_luafgen.c:957,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proxy_luafgen.c:958,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proxy_luafgen.c:963,1
    - Dst: mcp_process_rctx_wait
      Src: /src/memcached/proxy_luafgen.c:965,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:970,1
    - Dst: _mcp_resume_rctx_process_error
      Src: /src/memcached/proxy_luafgen.c:971,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proxy_luafgen.c:972,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - mcp_rcontext_t*
    assertStmts:
    - condition: (rqu->res_ref == 0)
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (rqu->res_ref == 0)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 975
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 975
    functionName: mcp_resume_rctx_from_cb
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - lua_pop
    - mcp_funcgen_return_rctx
    - mcp_process_rctx_wait
    - luaL_testudata
    - lua_type
    - proxy_run_rcontext
    - assert
    - luaL_ref
    - _mcp_resume_rctx_process_error
    - mcp_process_rqueue_return
    linkageType: ''
    returnType: void
    signature: void mcp_resume_rctx_from_cb(mcp_rcontext_t *rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:984,1
    - Dst: lua_settop
      Src: /src/memcached/proxy_luafgen.c:986,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:987,1
    - Dst: mcp_resume_rctx_from_cb
      Src: /src/memcached/proxy_luafgen.c:988,1
    - Dst: do_cache_free
      Src: /src/memcached/proxy_luafgen.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pending
    argTypes:
    - io_pending_t*
    assertStmts:
    - condition: (rctx->pending_reqs > -1)
      pos:
        line_end: 983
        line_start: 983
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 991
      start: 979
    functionDepth: 6
    functionLinenumber: 979
    functionLinenumberEnd: 991
    functionName: proxy_return_rqu_dummy_cb
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - do_cache_free
    - mcp_resume_rctx_from_cb
    - assert
    - lua_pushinteger
    - lua_settop
    linkageType: ''
    returnType: void
    signature: void proxy_return_rqu_dummy_cb(io_pending_t *pending)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:996,1
    - Dst: abort
      Src: /src/memcached/proxy_luafgen.c:1006,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:1044,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:1048,1
    - Dst: lua_settop
      Src: /src/memcached/proxy_luafgen.c:1075,1
    - Dst: mcp_rcontext_push_rqu_res
      Src: /src/memcached/proxy_luafgen.c:1078,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1080,1
    - Dst: event_pending
      Src: /src/memcached/proxy_luafgen.c:1085,1
    - Dst: event_del
      Src: /src/memcached/proxy_luafgen.c:1086,1
    - Dst: mcp_resume_rctx_from_cb
      Src: /src/memcached/proxy_luafgen.c:1089,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 2
    argNames:
    - rctx
    - handle
    argTypes:
    - mcp_rcontext_t*
    - int
    assertStmts:
    - condition: (rqu->state == RQUEUE_COMPLETE)
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (rctx->pending_reqs != 0)
      pos:
        line_end: 1047
        line_start: 1047
        source_file: /src/memcached/proxy_luafgen.c
    - condition: (1 == 0)
      pos:
        line_end: 1043
        line_start: 1043
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 1091
      start: 993
    functionDepth: 6
    functionLinenumber: 993
    functionLinenumberEnd: 1091
    functionName: mcp_process_rctx_wait
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 2
    functionsReached:
    - mcp_rcontext_push_rqu_res
    - mcp_resume_rctx_from_cb
    - event_pending
    - assert
    - abort
    - lua_pushinteger
    - event_del
    - lua_settop
    linkageType: ''
    returnType: void
    signature: void mcp_process_rctx_wait(mcp_rcontext_t *rctx, int handle)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:1100,1
    - Dst: lua_settop
      Src: /src/memcached/proxy_luafgen.c:1113,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1114,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1115,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1116,1
    - Dst: lua_pcall
      Src: /src/memcached/proxy_luafgen.c:1117,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proxy_luafgen.c:1118,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_luafgen.c:1118,1
    - Dst: lua_isinteger
      Src: /src/memcached/proxy_luafgen.c:1119,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:1121,1
    - Dst: lua_toboolean
      Src: /src/memcached/proxy_luafgen.c:1137,1
    - Dst: lua_settop
      Src: /src/memcached/proxy_luafgen.c:1141,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - rctx
    - handle
    - res
    argTypes:
    - mcp_rcontext_t*
    - int
    - mcp_resp_t*
    assertStmts:
    - condition: (rqu->state == RQUEUE_ACTIVE)
      pos:
        line_end: 1099
        line_start: 1099
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 1148
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1148
    functionName: mcp_process_rqueue_return
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 2
    functionsReached:
    - lua_rawgeti
    - LOGGER_LOG
    - lua_tostring
    - assert
    - lua_settop
    - lua_pcall
    - lua_isinteger
    - lua_tointeger
    - lua_toboolean
    linkageType: ''
    returnType: int
    signature: int mcp_process_rqueue_return(mcp_rcontext_t *rctx, int handle, mcp_resp_t
      *res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mcp_process_rqueue_return
      Src: /src/memcached/proxy_luafgen.c:1160,1
    - Dst: mcplib_rqu_log
      Src: /src/memcached/proxy_luafgen.c:1173,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:1177,1
    - Dst: mcp_process_rctx_wait
      Src: /src/memcached/proxy_luafgen.c:1180,1
    - Dst: mcp_funcgen_return_rctx
      Src: /src/memcached/proxy_luafgen.c:1182,1
    - Dst: do_cache_free
      Src: /src/memcached/proxy_luafgen.c:1185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - pending
    argTypes:
    - io_pending_t*
    assertStmts:
    - condition: (rctx->pending_reqs > -1)
      pos:
        line_end: 1176
        line_start: 1176
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 1186
      start: 1151
    functionDepth: 7
    functionLinenumber: 1151
    functionLinenumberEnd: 1186
    functionName: proxy_return_rqu_cb
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - mcp_funcgen_return_rctx
    - do_cache_free
    - mcp_process_rctx_wait
    - mcplib_rqu_log
    - assert
    - mcp_process_rqueue_return
    linkageType: ''
    returnType: void
    signature: void proxy_return_rqu_cb(io_pending_t *pending)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mcplib_pool_proxy_call_helper
      Src: /src/memcached/proxy_luafgen.c:1196,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_luafgen.c:1196,1
    - Dst: mcp_set_resobj
      Src: /src/memcached/proxy_luafgen.c:1198,1
    - Dst: mcp_queue_rctx_io
      Src: /src/memcached/proxy_luafgen.c:1199,1
    - Dst: mcp_rcontext_internal
      Src: /src/memcached/proxy_luafgen.c:1205,1
    - Dst: mcp_queue_rctx_io
      Src: /src/memcached/proxy_luafgen.c:1213,1
    - Dst: thread_io_queue_get
      Src: /src/memcached/proxy_luafgen.c:1221,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_luafgen.c:1226,1
    - Dst: mcp_queue_rctx_io
      Src: /src/memcached/proxy_luafgen.c:1234,1
    - Dst: mcp_start_subrctx
      Src: /src/memcached/proxy_luafgen.c:1246,1
    - Dst: assert
      Src: /src/memcached/proxy_luafgen.c:1248,1
    - Dst: mcp_process_rctx_wait
      Src: /src/memcached/proxy_luafgen.c:1253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - rctx
    - handle
    argTypes:
    - mcp_rcontext_t*
    - int
    assertStmts:
    - condition: (1==0)
      pos:
        line_end: 1247
        line_start: 1247
        source_file: /src/memcached/proxy_luafgen.c
    constantsTouched: []
    func_position:
      end: 1255
      start: 1188
    functionDepth: 7
    functionLinenumber: 1188
    functionLinenumberEnd: 1255
    functionName: mcp_run_rcontext_handle
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - mcp_rcontext_internal
    - mcp_process_rctx_wait
    - mcp_set_resobj
    - thread_io_queue_get
    - mcp_start_subrctx
    - mcplib_pool_proxy_call_helper
    - MCP_PARSER_KEY
    - STAILQ_INSERT_TAIL
    - assert
    - mcp_queue_rctx_io
    linkageType: ''
    returnType: void
    signature: void mcp_run_rcontext_handle(mcp_rcontext_t *rctx, int handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_tonumberx
      Src: /src/memcached/proxy_luafgen.c:1259,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1261,1
    - Dst: event_pending
      Src: /src/memcached/proxy_luafgen.c:1264,1
    - Dst: MICROSECONDS
      Src: /src/memcached/proxy_luafgen.c:1271,1
    - Dst: event_add
      Src: /src/memcached/proxy_luafgen.c:1272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - L
    - rctx
    - arg
    argTypes:
    - lua_State*
    - mcp_rcontext_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1274
    functionName: _mcplib_set_rctx_alarm
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - event_add
    - MICROSECONDS
    - event_pending
    - lua_tonumberx
    - proxy_lua_error
    linkageType: ''
    returnType: void
    signature: void _mcplib_set_rctx_alarm(lua_State *L, mcp_rcontext_t *rctx, int
      arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1284,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1289,1
    - Dst: lua_tointegerx
      Src: /src/memcached/proxy_luafgen.c:1294,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1296,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:1301,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1311,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - L
    - rctx
    - argc
    argTypes:
    - lua_State*
    - mcp_rcontext_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1320
    functionName: _mcplib_rcontext_wait_prep
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_tointegerx
    - proxy_lua_error
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int _mcplib_rcontext_wait_prep(lua_State *L, mcp_rcontext_t *rctx,
      int argc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/memcached/proxy_luafgen.c:1324,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1325,1
    - Dst: _mcplib_rcontext_wait_prep
      Src: /src/memcached/proxy_luafgen.c:1327,1
    - Dst: mcp_queue_rctx_io
      Src: /src/memcached/proxy_luafgen.c:1331,1
    - Dst: _mcplib_set_rctx_alarm
      Src: /src/memcached/proxy_luafgen.c:1338,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1341,1
    - Dst: lua_yield
      Src: /src/memcached/proxy_luafgen.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1343
    functionName: mcplib_rcontext_wait_cond
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcplib_rcontext_wait_prep
    - lua_touserdata
    - lua_gettop
    - lua_yield
    - lua_pushinteger
    - _mcplib_set_rctx_alarm
    - mcp_queue_rctx_io
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_wait_cond(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1346,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:1347,1
    - Dst: lua_tointegerx
      Src: /src/memcached/proxy_luafgen.c:1349,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1352,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1357,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1362,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:1367,1
    - Dst: _mcplib_rcontext_queue
      Src: /src/memcached/proxy_luafgen.c:1368,1
    - Dst: lua_gettop
      Src: /src/memcached/proxy_luafgen.c:1370,1
    - Dst: _mcplib_set_rctx_alarm
      Src: /src/memcached/proxy_luafgen.c:1371,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1379,1
    - Dst: lua_yield
      Src: /src/memcached/proxy_luafgen.c:1380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1381
    functionName: mcplib_rcontext_enqueue_and_wait
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_tointegerx
    - lua_pushvalue
    - luaL_checkudata
    - lua_touserdata
    - lua_gettop
    - lua_yield
    - lua_pushinteger
    - _mcplib_set_rctx_alarm
    - proxy_lua_error
    - _mcplib_rcontext_queue
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_enqueue_and_wait(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1384,1
    - Dst: lua_tointegerx
      Src: /src/memcached/proxy_luafgen.c:1386,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1389,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1394,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1400,1
    - Dst: lua_gettop
      Src: /src/memcached/proxy_luafgen.c:1404,1
    - Dst: _mcplib_set_rctx_alarm
      Src: /src/memcached/proxy_luafgen.c:1405,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1413,1
    - Dst: lua_yield
      Src: /src/memcached/proxy_luafgen.c:1414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1383
    functionDepth: 2
    functionLinenumber: 1383
    functionLinenumberEnd: 1415
    functionName: mcplib_rcontext_wait_handle
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_tointegerx
    - lua_touserdata
    - lua_gettop
    - lua_yield
    - lua_pushinteger
    - _mcplib_set_rctx_alarm
    - proxy_lua_error
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_wait_handle(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1418,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1420,1
    - Dst: _mcplib_set_rctx_alarm
      Src: /src/memcached/proxy_luafgen.c:1424,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1427,1
    - Dst: lua_yield
      Src: /src/memcached/proxy_luafgen.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1417
    functionDepth: 2
    functionLinenumber: 1417
    functionLinenumberEnd: 1429
    functionName: mcplib_rcontext_sleep
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_yield
    - lua_pushinteger
    - _mcplib_set_rctx_alarm
    - proxy_lua_error
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_sleep(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1432,1
    - Dst: lua_tointegerx
      Src: /src/memcached/proxy_luafgen.c:1434,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1442
    functionName: _mcplib_rcontext_checkhandle
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_tointegerx
    - lua_touserdata
    - proxy_lua_error
    linkageType: ''
    returnType: struct mcp_rqueue_s
    signature: struct mcp_rqueue_s *_mcplib_rcontext_checkhandle(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mcplib_rcontext_checkhandle
      Src: /src/memcached/proxy_luafgen.c:1445,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1447,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1452
    functionName: mcplib_rcontext_res_good
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcplib_rcontext_checkhandle
    - lua_rawgeti
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_res_good(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mcplib_rcontext_checkhandle
      Src: /src/memcached/proxy_luafgen.c:1455,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1457,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1454
    functionDepth: 2
    functionLinenumber: 1454
    functionLinenumberEnd: 1462
    functionName: mcplib_rcontext_res_ok
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcplib_rcontext_checkhandle
    - lua_rawgeti
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_res_ok(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mcplib_rcontext_checkhandle
      Src: /src/memcached/proxy_luafgen.c:1465,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1467,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1464
    functionDepth: 2
    functionLinenumber: 1464
    functionLinenumberEnd: 1474
    functionName: mcplib_rcontext_res_any
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcplib_rcontext_checkhandle
    - lua_rawgeti
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_res_any(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mcplib_rcontext_checkhandle
      Src: /src/memcached/proxy_luafgen.c:1478,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1480,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1482,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1484,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1477
    functionDepth: 2
    functionLinenumber: 1477
    functionLinenumberEnd: 1489
    functionName: mcplib_rcontext_result
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcplib_rcontext_checkhandle
    - lua_rawgeti
    - lua_pushinteger
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_result(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1495,1
    - Dst: lua_istable
      Src: /src/memcached/proxy_luafgen.c:1497,1
    - Dst: lua_rawlen
      Src: /src/memcached/proxy_luafgen.c:1500,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1502,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:1503,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1504,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1507,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1527,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1528,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1530,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1531,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1534,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1537
    functionName: mcplib_rcontext_best_result
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - lua_pushnil
    - lua_touserdata
    - lua_istable
    - lua_pushinteger
    - proxy_lua_error
    - lua_tointeger
    - lua_rawlen
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_best_result(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1544,1
    - Dst: lua_istable
      Src: /src/memcached/proxy_luafgen.c:1546,1
    - Dst: lua_rawlen
      Src: /src/memcached/proxy_luafgen.c:1549,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1551,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:1552,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1553,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1556,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1571,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1572,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1574,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1575,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1578,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1543
    functionDepth: 1
    functionLinenumber: 1543
    functionLinenumberEnd: 1581
    functionName: mcplib_rcontext_worst_result
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - lua_pushnil
    - lua_touserdata
    - lua_istable
    - lua_pushinteger
    - proxy_lua_error
    - lua_tointeger
    - lua_rawlen
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_worst_result(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1584,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_luafgen.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1587
    functionName: mcplib_rcontext_cfd
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_cfd(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1591,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1593,1
    - Dst: ssl_get_peer_cn
      Src: /src/memcached/proxy_luafgen.c:1599,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_luafgen.c:1601,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1603,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1609
    functionName: mcplib_rcontext_tls_peer_cn
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_touserdata
    - ssl_get_peer_cn
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_tls_peer_cn(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:1613,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - L
    - rctx
    - obj
    - otype
    argTypes:
    - lua_State*
    - mcp_rcontext_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1620
    functionName: _mcplib_rcontext_ref_uobj
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - luaL_ref
    - lua_pushvalue
    linkageType: ''
    returnType: void
    signature: void _mcplib_rcontext_ref_uobj(lua_State *L, mcp_rcontext_t *rctx,
      void *obj, int otype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1625,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1627,1
    - Dst: mcp_new_request
      Src: /src/memcached/proxy_luafgen.c:1633,1
    - Dst: _mcplib_rcontext_ref_uobj
      Src: /src/memcached/proxy_luafgen.c:1635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1624
    functionDepth: 1
    functionLinenumber: 1624
    functionLinenumberEnd: 1637
    functionName: mcplib_rcontext_request_new
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcplib_rcontext_ref_uobj
    - lua_touserdata
    - proxy_lua_error
    - mcp_new_request
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_request_new(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1640,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1642,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_luafgen.c:1646,1
    - Dst: memset
      Src: /src/memcached/proxy_luafgen.c:1647,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_luafgen.c:1648,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_luafgen.c:1649,1
    - Dst: _mcplib_rcontext_ref_uobj
      Src: /src/memcached/proxy_luafgen.c:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1653
    functionName: mcplib_rcontext_response_new
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - luaL_getmetatable
    - lua_newuserdatauv
    - lua_touserdata
    - _mcplib_rcontext_ref_uobj
    - proxy_lua_error
    - memset
    - lua_setmetatable
    linkageType: ''
    returnType: int
    signature: int mcplib_rcontext_response_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - L
    - rctx
    - handle
    argTypes:
    - lua_State*
    - mcp_rcontext_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1659
    functionName: mcp_rcontext_push_rqu_res
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - lua_rawgeti
    linkageType: ''
    returnType: void
    signature: void mcp_rcontext_push_rqu_res(lua_State *L, mcp_rcontext_t *rctx,
      int handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/memcached/proxy_luafgen.c:1683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - key
    - klen
    - needle
    - len
    argTypes:
    - char*
    - int
    - char
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1692
    functionName: _mcp_router_shortsep
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *_mcp_router_shortsep(const char *key, const int klen, const char
      needle, size_t *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/proxy_luafgen.c:1700,1
    - Dst: memchr
      Src: /src/memcached/proxy_luafgen.c:1702,1
    - Dst: memcmp
      Src: /src/memcached/proxy_luafgen.c:1712,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - key
    - klen
    - needle
    - len
    argTypes:
    - char*
    - int
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1721
    functionName: _mcp_router_longsep
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    - memchr
    linkageType: ''
    returnType: char
    signature: char *_mcp_router_longsep(const char *key, const int klen, const char
      *needle, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mcp_router_shortsep
      Src: /src/memcached/proxy_luafgen.c:1730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - key
    - klen
    - needle
    - len
    argTypes:
    - char*
    - int
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1731
    functionName: _mcp_router_anchorsm
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - _mcp_router_shortsep
    linkageType: ''
    returnType: char
    signature: char *_mcp_router_anchorsm(const char *key, const int klen, const char
      *needle, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/proxy_luafgen.c:1735,1
    - Dst: memcmp
      Src: /src/memcached/proxy_luafgen.c:1737,1
    - Dst: _mcp_router_longsep
      Src: /src/memcached/proxy_luafgen.c:1742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - key
    - klen
    - conf
    - len
    argTypes:
    - char*
    - int
    - struct mcp_router_long_s*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1743
    functionName: _mcp_router_anchorbig
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - strlen
    - _mcp_router_longsep
    - memcmp
    linkageType: ''
    returnType: char
    signature: char *_mcp_router_anchorbig(const char *key, const int klen, const
      struct mcp_router_long_s *conf, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fr
    - cmd
    argTypes:
    - struct mcp_funcgen_router*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1750
    functionName: _mcp_funcgen_route_fallback
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mcp_funcgen_t
    signature: mcp_funcgen_t *_mcp_funcgen_route_fallback(struct mcp_funcgen_router
      *fr, int cmd)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _mcp_funcgen_route_fallback
      Src: /src/memcached/proxy_luafgen.c:1765,1
    - Dst: _mcp_router_shortsep
      Src: /src/memcached/proxy_luafgen.c:1768,1
    - Dst: _mcp_router_longsep
      Src: /src/memcached/proxy_luafgen.c:1771,1
    - Dst: _mcp_router_anchorsm
      Src: /src/memcached/proxy_luafgen.c:1774,1
    - Dst: _mcp_router_anchorbig
      Src: /src/memcached/proxy_luafgen.c:1777,1
    - Dst: _mcp_funcgen_route_fallback
      Src: /src/memcached/proxy_luafgen.c:1782,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1788,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_luafgen.c:1789,1
    - Dst: lua_rawget
      Src: /src/memcached/proxy_luafgen.c:1790,1
    - Dst: lua_isnil
      Src: /src/memcached/proxy_luafgen.c:1791,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1792,1
    - Dst: _mcp_funcgen_route_fallback
      Src: /src/memcached/proxy_luafgen.c:1793,1
    - Dst: lua_type
      Src: /src/memcached/proxy_luafgen.c:1795,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1797,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1798,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1801,1
    - Dst: lua_isnil
      Src: /src/memcached/proxy_luafgen.c:1803,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1804,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1806,1
    - Dst: lua_isnil
      Src: /src/memcached/proxy_luafgen.c:1807,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1808,1
    - Dst: _mcp_funcgen_route_fallback
      Src: /src/memcached/proxy_luafgen.c:1809,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1811,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1812,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1816,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1817,1
    - Dst: _mcp_funcgen_route_fallback
      Src: /src/memcached/proxy_luafgen.c:1820,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 3
    argNames:
    - L
    - fgen
    - pr
    argTypes:
    - lua_State*
    - mcp_funcgen_t*
    - mcp_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1752
    functionDepth: 2
    functionLinenumber: 1752
    functionLinenumberEnd: 1823
    functionName: mcp_funcgen_route
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - lua_pushlstring
    - lua_pop
    - lua_rawgeti
    - lua_rawget
    - _mcp_router_shortsep
    - lua_touserdata
    - lua_isnil
    - _mcp_funcgen_route_fallback
    - _mcp_router_anchorbig
    - _mcp_router_anchorsm
    - lua_type
    - _mcp_router_longsep
    linkageType: ''
    returnType: mcp_funcgen_t
    signature: mcp_funcgen_t *mcp_funcgen_route(lua_State *L, mcp_funcgen_t *fgen,
      mcp_parser_t *pr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_luafgen.c:1829,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:1832,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1833,1
    - Dst: lua_next
      Src: /src/memcached/proxy_luafgen.c:1834,1
    - Dst: lua_type
      Src: /src/memcached/proxy_luafgen.c:1835,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1837,1
    - Dst: mcp_funcgen_dereference
      Src: /src/memcached/proxy_luafgen.c:1838,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1839,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:1841,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1842,1
    - Dst: lua_next
      Src: /src/memcached/proxy_luafgen.c:1843,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:1844,1
    - Dst: mcp_funcgen_dereference
      Src: /src/memcached/proxy_luafgen.c:1845,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1846,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1848,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1852,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_luafgen.c:1853,1
    - Dst: mcp_funcgen_dereference
      Src: /src/memcached/proxy_luafgen.c:1860,1
    - Dst: mcp_funcgen_dereference
      Src: /src/memcached/proxy_luafgen.c:1866,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - L
    - fgen
    argTypes:
    - lua_State*
    - mcp_funcgen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1826
    functionDepth: 4
    functionLinenumber: 1826
    functionLinenumberEnd: 1871
    functionName: mcp_funcgen_router_cleanup
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 1
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - lua_pushnil
    - luaL_unref
    - lua_absindex
    - lua_touserdata
    - lua_type
    - lua_next
    - mcp_funcgen_dereference
    linkageType: ''
    returnType: int
    signature: int mcp_funcgen_router_cleanup(lua_State *L, mcp_funcgen_t *fgen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:1877,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_luafgen.c:1879,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_luafgen.c:1881,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_luafgen.c:1883,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1885,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_luafgen.c:1888,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - L
    - arg
    - len
    argTypes:
    - lua_State*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1891
    functionName: _mcplib_router_new_check
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - proxy_lua_ferror
    - lua_tolstring
    linkageType: ''
    returnType: char
    signature: char *_mcplib_router_new_check(lua_State *L, const char *arg, size_t
      *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:1894,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1895,1
    - Dst: lua_next
      Src: /src/memcached/proxy_luafgen.c:1896,1
    - Dst: lua_isinteger
      Src: /src/memcached/proxy_luafgen.c:1897,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1898,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:1900,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1902,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:1904,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1907
    functionName: _mcplib_router_new_cmapcheck
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_pushnil
    - luaL_checkudata
    - lua_absindex
    - proxy_lua_error
    - lua_isinteger
    - lua_next
    - lua_tointeger
    linkageType: ''
    returnType: void
    signature: void _mcplib_router_new_cmapcheck(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_istable
      Src: /src/memcached/proxy_luafgen.c:1911,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1912,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:1915,1
    - Dst: lua_next
      Src: /src/memcached/proxy_luafgen.c:1916,1
    - Dst: lua_type
      Src: /src/memcached/proxy_luafgen.c:1917,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:1919,1
    - Dst: _mcplib_router_new_cmapcheck
      Src: /src/memcached/proxy_luafgen.c:1922,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1924,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1909
    functionDepth: 2
    functionLinenumber: 1909
    functionLinenumberEnd: 1931
    functionName: _mcplib_router_new_mapcheck
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_pushnil
    - luaL_checkudata
    - lua_type
    - lua_istable
    - _mcplib_router_new_cmapcheck
    - proxy_lua_error
    - lua_next
    linkageType: ''
    returnType: size_t
    signature: size_t _mcplib_router_new_mapcheck(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lua_tostring
      Src: /src/memcached/proxy_luafgen.c:1935,1
    - Dst: strcmp
      Src: /src/memcached/proxy_luafgen.c:1940,1
    - Dst: _mcplib_router_new_check
      Src: /src/memcached/proxy_luafgen.c:1941,1
    - Dst: memcpy
      Src: /src/memcached/proxy_luafgen.c:1953,1
    - Dst: strcmp
      Src: /src/memcached/proxy_luafgen.c:1956,1
    - Dst: _mcplib_router_new_check
      Src: /src/memcached/proxy_luafgen.c:1958,1
    - Dst: _mcplib_router_new_check
      Src: /src/memcached/proxy_luafgen.c:1959,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1967,1
    - Dst: memcpy
      Src: /src/memcached/proxy_luafgen.c:1974,1
    - Dst: memcpy
      Src: /src/memcached/proxy_luafgen.c:1975,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1980,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - L
    - fr
    argTypes:
    - lua_State*
    - struct mcp_funcgen_router*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1934
    functionDepth: 2
    functionLinenumber: 1934
    functionLinenumberEnd: 1982
    functionName: _mcplib_router_new_mode
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _mcplib_router_new_check
    - lua_tostring
    - proxy_lua_error
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _mcplib_router_new_mode(lua_State *L, struct mcp_funcgen_router
      *fr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lua_istable
      Src: /src/memcached/proxy_luafgen.c:1990,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:1991,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:1994,1
    - Dst: _mcplib_router_new_mapcheck
      Src: /src/memcached/proxy_luafgen.c:1995,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:1998,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:2000,1
    - Dst: lua_istable
      Src: /src/memcached/proxy_luafgen.c:2001,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:2002,1
    - Dst: _mcplib_router_new_cmapcheck
      Src: /src/memcached/proxy_luafgen.c:2004,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_luafgen.c:2007,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:2010,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:2022,1
    - Dst: _mcplib_router_new_mode
      Src: /src/memcached/proxy_luafgen.c:2023,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:2025,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_luafgen.c:2031,1
    - Dst: memset
      Src: /src/memcached/proxy_luafgen.c:2032,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_luafgen.c:2035,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_luafgen.c:2036,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:2038,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_luafgen.c:2040,1
    - Dst: mcp_funcgen_reference
      Src: /src/memcached/proxy_luafgen.c:2041,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:2043,1
    - Dst: memcpy
      Src: /src/memcached/proxy_luafgen.c:2046,1
    - Dst: strncpy
      Src: /src/memcached/proxy_luafgen.c:2047,1
    - Dst: lua_createtable
      Src: /src/memcached/proxy_luafgen.c:2051,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:2052,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_luafgen.c:2053,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:2055,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:2056,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:2057,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:2058,1
    - Dst: lua_next
      Src: /src/memcached/proxy_luafgen.c:2060,1
    - Dst: lua_type
      Src: /src/memcached/proxy_luafgen.c:2062,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:2065,1
    - Dst: mcp_funcgen_reference
      Src: /src/memcached/proxy_luafgen.c:2066,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:2069,1
    - Dst: lua_insert
      Src: /src/memcached/proxy_luafgen.c:2071,1
    - Dst: lua_rawset
      Src: /src/memcached/proxy_luafgen.c:2073,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:2075,1
    - Dst: lua_createtable
      Src: /src/memcached/proxy_luafgen.c:2076,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:2077,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:2078,1
    - Dst: lua_next
      Src: /src/memcached/proxy_luafgen.c:2079,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:2080,1
    - Dst: mcp_funcgen_reference
      Src: /src/memcached/proxy_luafgen.c:2081,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:2083,1
    - Dst: lua_insert
      Src: /src/memcached/proxy_luafgen.c:2084,1
    - Dst: lua_rawset
      Src: /src/memcached/proxy_luafgen.c:2085,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_luafgen.c:2091,1
    - Dst: lua_insert
      Src: /src/memcached/proxy_luafgen.c:2092,1
    - Dst: lua_rawset
      Src: /src/memcached/proxy_luafgen.c:2093,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:2094,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:2098,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_luafgen.c:2102,1
    - Dst: lua_absindex
      Src: /src/memcached/proxy_luafgen.c:2103,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_luafgen.c:2104,1
    - Dst: lua_next
      Src: /src/memcached/proxy_luafgen.c:2105,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_luafgen.c:2106,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_luafgen.c:2107,1
    - Dst: mcp_funcgen_reference
      Src: /src/memcached/proxy_luafgen.c:2108,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_luafgen.c:2112,1
    - Dst: PROXY_GET_THR
      Src: /src/memcached/proxy_luafgen.c:2114,1
    - Dst: mcp_sharedvm_delta
      Src: /src/memcached/proxy_luafgen.c:2116,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 85
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 1985
    functionDepth: 3
    functionLinenumber: 1985
    functionLinenumberEnd: 2119
    functionName: mcplib_router_new
    functionSourceFile: /src/memcached/proxy_luafgen.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - lua_absindex
    - lua_insert
    - lua_type
    - lua_istable
    - luaL_ref
    - proxy_lua_error
    - lua_next
    - _mcplib_router_new_mapcheck
    - lua_pop
    - luaL_getmetatable
    - mcp_sharedvm_delta
    - lua_newuserdatauv
    - _mcplib_router_new_mode
    - lua_getfield
    - lua_rawset
    - mcp_funcgen_reference
    - PROXY_GET_THR
    - lua_pushvalue
    - lua_pushnil
    - _mcplib_router_new_cmapcheck
    - memset
    - lua_setmetatable
    - memcpy
    - lua_touserdata
    - strncpy
    - lua_tointeger
    - lua_createtable
    linkageType: ''
    returnType: int
    signature: int mcplib_router_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: hashsize
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashsize(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: hashmask
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmask(n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/assoc.c:59,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:59,1
    - Dst: fprintf
      Src: /src/memcached/assoc.c:61,1
    - Dst: exit
      Src: /src/memcached/assoc.c:62,1
    - Dst: STATS_LOCK
      Src: /src/memcached/assoc.c:64,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:66,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/assoc.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - hashtable_init
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: assoc_init
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 1
    functionsReached:
    - fprintf
    - exit
    - STATS_LOCK
    - hashsize
    - calloc
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void assoc_init(const int hashtable_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmask
      Src: /src/memcached/assoc.c:75,1
    - Dst: hashmask
      Src: /src/memcached/assoc.c:79,1
    - Dst: memcmp
      Src: /src/memcached/assoc.c:87,1
    - Dst: ITEM_key
      Src: /src/memcached/assoc.c:87,1
    - Dst: MEMCACHED_ASSOC_FIND
      Src: /src/memcached/assoc.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - key
    - nkey
    - hv
    argTypes:
    - char*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 98
    functionName: assoc_find
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 1
    functionsReached:
    - MEMCACHED_ASSOC_FIND
    - ITEM_key
    - memcmp
    - hashmask
    linkageType: ''
    returnType: item
    signature: item *assoc_find(const char *key, const size_t nkey, const uint32_t
      hv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmask
      Src: /src/memcached/assoc.c:108,1
    - Dst: hashmask
      Src: /src/memcached/assoc.c:112,1
    - Dst: memcmp
      Src: /src/memcached/assoc.c:115,1
    - Dst: ITEM_key
      Src: /src/memcached/assoc.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: _hashitem_before
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - ITEM_key
    - memcmp
    - hashmask
    linkageType: ''
    returnType: item
    signature: item ** _hashitem_before (const char *key, const size_t nkey, const
      uint32_t hv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/assoc.c:125,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:125,1
    - Dst: fprintf
      Src: /src/memcached/assoc.c:128,1
    - Dst: STATS_LOCK
      Src: /src/memcached/assoc.c:132,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:134,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/assoc.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: assoc_expand
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - fprintf
    - STATS_LOCK
    - hashsize
    - calloc
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void assoc_expand(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/memcached/assoc.c:144,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:145,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/assoc.c:146,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/assoc.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - curr_items
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: assoc_start_expand
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 1
    functionsReached:
    - hashsize
    - pthread_mutex_trylock
    - pthread_mutex_unlock
    - pthread_cond_signal
    linkageType: ''
    returnType: void
    signature: void assoc_start_expand(uint64_t curr_items)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmask
      Src: /src/memcached/assoc.c:159,1
    - Dst: hashmask
      Src: /src/memcached/assoc.c:164,1
    - Dst: hashmask
      Src: /src/memcached/assoc.c:165,1
    - Dst: MEMCACHED_ASSOC_INSERT
      Src: /src/memcached/assoc.c:168,1
    - Dst: ITEM_key
      Src: /src/memcached/assoc.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - it
    - hv
    argTypes:
    - item*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: assoc_insert
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - ITEM_key
    - MEMCACHED_ASSOC_INSERT
    - hashmask
    linkageType: ''
    returnType: int
    signature: int assoc_insert(item *it, const uint32_t hv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _hashitem_before
      Src: /src/memcached/assoc.c:173,1
    - Dst: MEMCACHED_ASSOC_DELETE
      Src: /src/memcached/assoc.c:180,1
    - Dst: assert
      Src: /src/memcached/assoc.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - key
    - nkey
    - hv
    argTypes:
    - char*
    - size_t
    - uint32_t
    assertStmts:
    - condition: (*before != 0)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/memcached/assoc.c
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: assoc_delete
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - _hashitem_before
    - MEMCACHED_ASSOC_DELETE
    - assert
    linkageType: ''
    returnType: void
    signature: void assoc_delete(const char *key, const size_t nkey, const uint32_t
      hv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/memcached/assoc.c:199,1
    - Dst: item_trylock
      Src: /src/memcached/assoc.c:213,1
    - Dst: hash
      Src: /src/memcached/assoc.c:216,1
    - Dst: ITEM_key
      Src: /src/memcached/assoc.c:216,1
    - Dst: hashmask
      Src: /src/memcached/assoc.c:216,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:224,1
    - Dst: free
      Src: /src/memcached/assoc.c:226,1
    - Dst: STATS_LOCK
      Src: /src/memcached/assoc.c:227,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:228,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/assoc.c:230,1
    - Dst: fprintf
      Src: /src/memcached/assoc.c:232,1
    - Dst: usleep
      Src: /src/memcached/assoc.c:236,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/assoc.c:240,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/assoc.c:247,1
    - Dst: pause_threads
      Src: /src/memcached/assoc.c:256,1
    - Dst: assoc_expand
      Src: /src/memcached/assoc.c:257,1
    - Dst: pause_threads
      Src: /src/memcached/assoc.c:258,1
    - Dst: mutex_unlock
      Src: /src/memcached/assoc.c:262,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 264
    functionName: assoc_maintenance_thread
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - item_trylock_unlock
    - free
    - fprintf
    - pause_threads
    - assoc_expand
    - usleep
    - hashmask
    - hash
    - pthread_cond_wait
    - STATS_LOCK
    - hashsize
    - mutex_lock
    - item_trylock
    - ITEM_key
    - mutex_unlock
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void *assoc_maintenance_thread(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/memcached/assoc.c:270,1
    - Dst: atoi
      Src: /src/memcached/assoc.c:272,1
    - Dst: pthread_create
      Src: /src/memcached/assoc.c:278,1
    - Dst: fprintf
      Src: /src/memcached/assoc.c:280,1
    - Dst: strerror
      Src: /src/memcached/assoc.c:280,1
    - Dst: thread_setname
      Src: /src/memcached/assoc.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 285
    functionName: start_assoc_maintenance_thread
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - fprintf
    - atoi
    - getenv
    - pthread_create
    - thread_setname
    - strerror
    linkageType: ''
    returnType: int
    signature: int start_assoc_maintenance_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/memcached/assoc.c:288,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/assoc.c:290,1
    - Dst: mutex_unlock
      Src: /src/memcached/assoc.c:291,1
    - Dst: pthread_join
      Src: /src/memcached/assoc.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: stop_assoc_maintenance_thread
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - mutex_lock
    - pthread_cond_signal
    - mutex_unlock
    linkageType: ''
    returnType: void
    signature: void stop_assoc_maintenance_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/assoc.c:305,1
    - Dst: mutex_trylock
      Src: /src/memcached/assoc.c:310,1
    - Dst: free
      Src: /src/memcached/assoc.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 316
    functionName: assoc_get_iterator
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - free
    - mutex_trylock
    - calloc
    linkageType: ''
    returnType: void
    signature: void *assoc_get_iterator(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: item_unlock
      Src: /src/memcached/assoc.c:329,1
    - Dst: hashsize
      Src: /src/memcached/assoc.c:339,1
    - Dst: item_lock
      Src: /src/memcached/assoc.c:341,1
    - Dst: item_unlock
      Src: /src/memcached/assoc.c:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - iterp
    - it
    argTypes:
    - void*
    - item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 360
    functionName: assoc_iterate
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - hashsize
    - item_lock
    - item_unlock
    linkageType: ''
    returnType: bool
    signature: bool assoc_iterate(void *iterp, item **it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: item_unlock
      Src: /src/memcached/assoc.c:365,1
    - Dst: mutex_unlock
      Src: /src/memcached/assoc.c:367,1
    - Dst: free
      Src: /src/memcached/assoc.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iterp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: assoc_iterate_final
    functionSourceFile: /src/memcached/assoc.c
    functionUses: 0
    functionsReached:
    - free
    - mutex_unlock
    - item_unlock
    linkageType: ''
    returnType: void
    signature: void assoc_iterate_final(void *iterp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: TIMEVAL_TO_MILLIS
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMEVAL_TO_MILLIS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_ratelim.c:23,1
    - Dst: assert
      Src: /src/memcached/proxy_ratelim.c:24,1
    - Dst: mcp_gobj_finalize
      Src: /src/memcached/proxy_ratelim.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts:
    - condition: (lim->g.refcount == 0)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/memcached/proxy_ratelim.c
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: mcplib_ratelim_global_tbf_gc
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - mcp_gobj_finalize
    - assert
    linkageType: ''
    returnType: int
    signature: int mcplib_ratelim_global_tbf_gc(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_ratelim.c:33,1
    - Dst: PROXY_GET_THR_CTX
      Src: /src/memcached/proxy_ratelim.c:35,1
    - Dst: mcp_gobj_unref
      Src: /src/memcached/proxy_ratelim.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: mcplib_ratelim_proxy_tbf_gc
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - luaL_checkudata
    - mcp_gobj_unref
    - PROXY_GET_THR_CTX
    linkageType: ''
    returnType: int
    signature: int mcplib_ratelim_proxy_tbf_gc(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_ratelim.c:43,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_ratelim.c:44,1
    - Dst: luaL_setmetatable
      Src: /src/memcached/proxy_ratelim.c:45,1
    - Dst: lua_pushvalue
      Src: /src/memcached/proxy_ratelim.c:48,1
    - Dst: mcp_gobj_ref
      Src: /src/memcached/proxy_ratelim.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - lua_State*
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: mcp_ratelim_proxy_tbf
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 1
    functionsReached:
    - lua_pushvalue
    - luaL_checkudata
    - lua_newuserdatauv
    - luaL_setmetatable
    - mcp_gobj_ref
    linkageType: ''
    returnType: int
    signature: int mcp_ratelim_proxy_tbf(lua_State *from, lua_State *to)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_ratelim.c:56,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_ratelim.c:57,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_ratelim.c:59,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_ratelim.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - L
    - key
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: _tbf_check
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tointeger
    - proxy_lua_error
    linkageType: ''
    returnType: lua_Integer
    signature: lua_Integer _tbf_check(lua_State *L, char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_ratelim.c:68,1
    - Dst: _tbf_check
      Src: /src/memcached/proxy_ratelim.c:69,1
    - Dst: _tbf_check
      Src: /src/memcached/proxy_ratelim.c:70,1
    - Dst: _tbf_check
      Src: /src/memcached/proxy_ratelim.c:71,1
    - Dst: gettimeofday
      Src: /src/memcached/proxy_ratelim.c:75,1
    - Dst: TIMEVAL_TO_MILLIS
      Src: /src/memcached/proxy_ratelim.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - L
    - lim
    argTypes:
    - lua_State*
    - struct mcp_ratelim_tbf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: _setup_tbf
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - _tbf_check
    - luaL_checktype
    - gettimeofday
    - TIMEVAL_TO_MILLIS
    linkageType: ''
    returnType: void
    signature: void _setup_tbf(lua_State *L, struct mcp_ratelim_tbf *lim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_ratelim.c:80,1
    - Dst: memset
      Src: /src/memcached/proxy_ratelim.c:81,1
    - Dst: luaL_setmetatable
      Src: /src/memcached/proxy_ratelim.c:82,1
    - Dst: _setup_tbf
      Src: /src/memcached/proxy_ratelim.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: mcplib_ratelim_tbf
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - lua_newuserdatauv
    - luaL_setmetatable
    - _setup_tbf
    - memset
    linkageType: ''
    returnType: int
    signature: int mcplib_ratelim_tbf(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_ratelim.c:89,1
    - Dst: memset
      Src: /src/memcached/proxy_ratelim.c:90,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/proxy_ratelim.c:93,1
    - Dst: luaL_setmetatable
      Src: /src/memcached/proxy_ratelim.c:94,1
    - Dst: _setup_tbf
      Src: /src/memcached/proxy_ratelim.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: mcplib_ratelim_global_tbf
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - lua_newuserdatauv
    - _setup_tbf
    - pthread_mutex_init
    - luaL_setmetatable
    - memset
    linkageType: ''
    returnType: int
    signature: int mcplib_ratelim_global_tbf(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - lim
    - take
    - now
    argTypes:
    - struct mcp_ratelim_tbf*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: _update_tbf
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _update_tbf(struct mcp_ratelim_tbf *lim, int take, uint64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_ratelim.c:125,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_ratelim.c:126,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_ratelim.c:127,1
    - Dst: gettimeofday
      Src: /src/memcached/proxy_ratelim.c:131,1
    - Dst: TIMEVAL_TO_MILLIS
      Src: /src/memcached/proxy_ratelim.c:132,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_ratelim.c:133,1
    - Dst: _update_tbf
      Src: /src/memcached/proxy_ratelim.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 136
    functionName: mcplib_ratelim_tbf_call
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - gettimeofday
    - luaL_checkudata
    - _update_tbf
    - TIMEVAL_TO_MILLIS
    - lua_pushboolean
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int mcplib_ratelim_tbf_call(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_ratelim.c:149,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_ratelim.c:153,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_ratelim.c:154,1
    - Dst: gettimeofday
      Src: /src/memcached/proxy_ratelim.c:155,1
    - Dst: TIMEVAL_TO_MILLIS
      Src: /src/memcached/proxy_ratelim.c:157,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_ratelim.c:159,1
    - Dst: _update_tbf
      Src: /src/memcached/proxy_ratelim.c:160,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_ratelim.c:161,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_ratelim.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: mcplib_ratelim_proxy_tbf_call
    functionSourceFile: /src/memcached/proxy_ratelim.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - gettimeofday
    - luaL_checkudata
    - _update_tbf
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - TIMEVAL_TO_MILLIS
    - lua_pushboolean
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int mcplib_ratelim_proxy_tbf_call(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_internal.c:18,1
    - Dst: crc32c
      Src: /src/memcached/proxy_internal.c:28,1
    - Dst: assert
      Src: /src/memcached/proxy_internal.c:47,1
    - Dst: ITEM_data
      Src: /src/memcached/proxy_internal.c:52,1
    - Dst: return_io_pending
      Src: /src/memcached/proxy_internal.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - e
    - eio
    - ret
    argTypes:
    - void*
    - obj_io*
    - int
    assertStmts:
    - condition: (io->active == true)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/memcached/proxy_internal.c
    - condition: (1 == 0)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/memcached/proxy_internal.c
    constantsTouched: []
    func_position:
      end: 60
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 60
    functionName: _storage_get_item_cb
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 0
    functionsReached:
    - return_io_pending
    - assert
    - crc32c
    - ITEM_data
    linkageType: ''
    returnType: void
    signature: void _storage_get_item_cb(void *e, obj_io *eio, int ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proxy_internal.c:68,1
    - Dst: ITEM_data
      Src: /src/memcached/proxy_internal.c:68,1
    - Dst: ITEM_data
      Src: /src/memcached/proxy_internal.c:70,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/proxy_internal.c:72,1
    - Dst: do_cache_alloc
      Src: /src/memcached/proxy_internal.c:74,1
    - Dst: assert
      Src: /src/memcached/proxy_internal.c:76,1
    - Dst: memset
      Src: /src/memcached/proxy_internal.c:77,1
    - Dst: malloc
      Src: /src/memcached/proxy_internal.c:91,1
    - Dst: do_cache_free
      Src: /src/memcached/proxy_internal.c:93,1
    - Dst: resp_add_iov
      Src: /src/memcached/proxy_internal.c:98,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proxy_internal.c:120,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proxy_internal.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 4
    argNames:
    - t
    - it
    - resp
    - type
    argTypes:
    - LIBEVENT_THREAD*
    - item*
    - mc_resp*
    - int
    assertStmts:
    - condition: (sizeof(io_pending_t) >= sizeof(io_pending_proxy_t))
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/memcached/proxy_internal.c
    constantsTouched: []
    func_position:
      end: 125
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 125
    functionName: _proxy_storage_get
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 0
    functionsReached:
    - ITEM_data
    - do_cache_free
    - malloc
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - assert
    - memset
    - do_cache_alloc
    - resp_add_iov
    - ITEM_ntotal
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int _proxy_storage_get(LIBEVENT_THREAD *t, item *it, mc_resp *resp,\n
      \       int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _proxy_storage_get
      Src: /src/memcached/proxy_internal.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - it
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - item*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: proxy_storage_mg
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 0
    functionsReached:
    - _proxy_storage_get
    linkageType: ''
    returnType: int
    signature: int proxy_storage_mg(LIBEVENT_THREAD *t, item *it, mc_resp *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _proxy_storage_get
      Src: /src/memcached/proxy_internal.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - it
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - item*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: proxy_storage_get
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 2
    functionsReached:
    - _proxy_storage_get
    linkageType: ''
    returnType: int
    signature: int proxy_storage_get(LIBEVENT_THREAD *t, item *it, mc_resp *resp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mc_parse_exptime
      Src: /src/memcached/proxy_internal.c:138,1
    - Dst: process_get_cmd
      Src: /src/memcached/proxy_internal.c:144,1
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_internal.c:144,1
    - Dst: resp_add_iov
      Src: /src/memcached/proxy_internal.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - t
    - pr
    - resp
    - return_cas
    - should_touch
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_parser_t*
    - mc_resp*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: proxy_get_cmd
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 0
    functionsReached:
    - MCP_PARSER_KEY
    - mc_parse_exptime
    - process_get_cmd
    - resp_add_iov
    linkageType: ''
    returnType: void
    signature: void proxy_get_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp,
      bool return_cas, bool should_touch)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: process_mget_cmd
      Src: /src/memcached/proxy_internal.c:160,1
    - Dst: process_mset_cmd
      Src: /src/memcached/proxy_internal.c:163,1
    - Dst: process_mdelete_cmd
      Src: /src/memcached/proxy_internal.c:166,1
    - Dst: process_marithmetic_cmd
      Src: /src/memcached/proxy_internal.c:169,1
    - Dst: proxy_get_cmd
      Src: /src/memcached/proxy_internal.c:172,1
    - Dst: proxy_get_cmd
      Src: /src/memcached/proxy_internal.c:175,1
    - Dst: proxy_get_cmd
      Src: /src/memcached/proxy_internal.c:178,1
    - Dst: proxy_get_cmd
      Src: /src/memcached/proxy_internal.c:181,1
    - Dst: process_update_cmd
      Src: /src/memcached/proxy_internal.c:184,1
    - Dst: process_update_cmd
      Src: /src/memcached/proxy_internal.c:187,1
    - Dst: process_update_cmd
      Src: /src/memcached/proxy_internal.c:190,1
    - Dst: process_update_cmd
      Src: /src/memcached/proxy_internal.c:193,1
    - Dst: process_update_cmd
      Src: /src/memcached/proxy_internal.c:196,1
    - Dst: process_update_cmd
      Src: /src/memcached/proxy_internal.c:199,1
    - Dst: process_arithmetic_cmd
      Src: /src/memcached/proxy_internal.c:202,1
    - Dst: process_arithmetic_cmd
      Src: /src/memcached/proxy_internal.c:205,1
    - Dst: process_delete_cmd
      Src: /src/memcached/proxy_internal.c:208,1
    - Dst: process_touch_cmd
      Src: /src/memcached/proxy_internal.c:211,1
    - Dst: resp_free
      Src: /src/memcached/proxy_internal.c:214,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/proxy_internal.c:224,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 4
    argNames:
    - t
    - rq
    - r
    - resp
    argTypes:
    - LIBEVENT_THREAD*
    - mcp_request_t*
    - mcp_resp_t*
    - mc_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 233
    functionName: _mcplib_internal_run
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 0
    functionsReached:
    - mcmc_parse_buf
    - process_touch_cmd
    - proxy_get_cmd
    - process_mget_cmd
    - process_delete_cmd
    - resp_free
    - process_mdelete_cmd
    - process_mset_cmd
    - process_update_cmd
    - process_arithmetic_cmd
    - process_marithmetic_cmd
    linkageType: ''
    returnType: int
    signature: int _mcplib_internal_run(LIBEVENT_THREAD *t, mcp_request_t *rq, mcp_resp_t
      *r, mc_resp *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_internal.c:236,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_internal.c:237,1
    - Dst: memset
      Src: /src/memcached/proxy_internal.c:238,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_internal.c:239,1
    - Dst: lua_setmetatable
      Src: /src/memcached/proxy_internal.c:240,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_internal.c:242,1
    - Dst: lua_yield
      Src: /src/memcached/proxy_internal.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: mcplib_internal
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 0
    functionsReached:
    - luaL_getmetatable
    - luaL_checkudata
    - lua_newuserdatauv
    - lua_yield
    - lua_pushinteger
    - memset
    - lua_setmetatable
    linkageType: ''
    returnType: int
    signature: int mcplib_internal(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resp_start_unlinked
      Src: /src/memcached/proxy_internal.c:249,1
    - Dst: _mcplib_internal_run
      Src: /src/memcached/proxy_internal.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - rctx
    - rq
    - r
    argTypes:
    - mcp_rcontext_t*
    - mcp_request_t*
    - mcp_resp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: mcp_rcontext_internal
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 1
    functionsReached:
    - _mcplib_internal_run
    - resp_start_unlinked
    linkageType: ''
    returnType: void
    signature: void *mcp_rcontext_internal(mcp_rcontext_t *rctx, mcp_request_t *rq,
      mcp_resp_t *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_internal.c:267,1
    - Dst: luaL_checkudata
      Src: /src/memcached/proxy_internal.c:268,1
    - Dst: resp_start_unlinked
      Src: /src/memcached/proxy_internal.c:269,1
    - Dst: _mcplib_internal_run
      Src: /src/memcached/proxy_internal.c:276,1
    - Dst: thread_io_queue_get
      Src: /src/memcached/proxy_internal.c:291,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/proxy_internal.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - mcp_rcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 265
    functionDepth: 6
    functionLinenumber: 265
    functionLinenumberEnd: 304
    functionName: mcplib_internal_run
    functionSourceFile: /src/memcached/proxy_internal.c
    functionUses: 3
    functionsReached:
    - luaL_checkudata
    - thread_io_queue_get
    - STAILQ_INSERT_TAIL
    - _mcplib_internal_run
    - resp_start_unlinked
    linkageType: ''
    returnType: int
    signature: int mcplib_internal_run(mcp_rcontext_t *rctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cap_rights_init
      Src: /src/memcached/freebsd_priv.c:16,1
    - Dst: fprintf
      Src: /src/memcached/freebsd_priv.c:17,1
    - Dst: strerror
      Src: /src/memcached/freebsd_priv.c:17,1
    - Dst: exit
      Src: /src/memcached/freebsd_priv.c:18,1
    - Dst: cap_rights_init
      Src: /src/memcached/freebsd_priv.c:21,1
    - Dst: fprintf
      Src: /src/memcached/freebsd_priv.c:22,1
    - Dst: strerror
      Src: /src/memcached/freebsd_priv.c:22,1
    - Dst: exit
      Src: /src/memcached/freebsd_priv.c:23,1
    - Dst: cap_rights_limit
      Src: /src/memcached/freebsd_priv.c:26,1
    - Dst: fprintf
      Src: /src/memcached/freebsd_priv.c:27,1
    - Dst: strerror
      Src: /src/memcached/freebsd_priv.c:27,1
    - Dst: exit
      Src: /src/memcached/freebsd_priv.c:28,1
    - Dst: cap_rights_limit
      Src: /src/memcached/freebsd_priv.c:31,1
    - Dst: fprintf
      Src: /src/memcached/freebsd_priv.c:32,1
    - Dst: strerror
      Src: /src/memcached/freebsd_priv.c:32,1
    - Dst: exit
      Src: /src/memcached/freebsd_priv.c:33,1
    - Dst: cap_rights_limit
      Src: /src/memcached/freebsd_priv.c:36,1
    - Dst: fprintf
      Src: /src/memcached/freebsd_priv.c:37,1
    - Dst: strerror
      Src: /src/memcached/freebsd_priv.c:37,1
    - Dst: exit
      Src: /src/memcached/freebsd_priv.c:38,1
    - Dst: cap_enter
      Src: /src/memcached/freebsd_priv.c:41,1
    - Dst: fprintf
      Src: /src/memcached/freebsd_priv.c:42,1
    - Dst: strerror
      Src: /src/memcached/freebsd_priv.c:42,1
    - Dst: exit
      Src: /src/memcached/freebsd_priv.c:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 45
    functionName: drop_privileges
    functionSourceFile: /src/memcached/freebsd_priv.c
    functionUses: 0
    functionsReached:
    - fprintf
    - cap_enter
    - cap_rights_init
    - exit
    - strerror
    - cap_rights_limit
    linkageType: ''
    returnType: void
    signature: void drop_privileges()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: setup_privilege_violations_handler
    functionSourceFile: /src/memcached/freebsd_priv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_privilege_violations_handler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/memcached/sizes.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: display
    functionSourceFile: /src/memcached/sizes.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void display(const char *name, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: display
      Src: /src/memcached/sizes.c:11,1
    - Dst: display
      Src: /src/memcached/sizes.c:12,1
    - Dst: display
      Src: /src/memcached/sizes.c:15,1
    - Dst: display
      Src: /src/memcached/sizes.c:16,1
    - Dst: display
      Src: /src/memcached/sizes.c:17,1
    - Dst: display
      Src: /src/memcached/sizes.c:18,1
    - Dst: display
      Src: /src/memcached/sizes.c:20,1
    - Dst: display
      Src: /src/memcached/sizes.c:22,1
    - Dst: display
      Src: /src/memcached/sizes.c:24,1
    - Dst: display
      Src: /src/memcached/sizes.c:25,1
    - Dst: display
      Src: /src/memcached/sizes.c:26,1
    - Dst: display
      Src: /src/memcached/sizes.c:27,1
    - Dst: printf
      Src: /src/memcached/sizes.c:29,1
    - Dst: display
      Src: /src/memcached/sizes.c:31,1
    - Dst: display
      Src: /src/memcached/sizes.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/memcached/sizes.c
    functionUses: 0
    functionsReached:
    - printf
    - display
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: res_buf
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_buf(r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:79,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_inspector.c:81,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:83,1
    - Dst: mcp_is_flag_invalid
      Src: /src/memcached/proxy_inspector.c:85,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:86,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:89,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - L
    - tidx
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: mcp_inspector_flag_c_g
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - proxy_lua_ferror
    - lua_getfield
    - mcp_is_flag_invalid
    - lua_tolstring
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_flag_c_g(lua_State *L, int tidx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:99,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_inspector.c:100,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - L
    - tidx
    - sc
    - ins
    argTypes:
    - lua_State*
    - int
    - int
    - struct mcp_inspector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: mcp_inspector_flag_i_g
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_tostring
    - lua_getfield
    - lua_pop
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_flag_i_g(lua_State *L, int tidx, int sc, struct mcp_inspector
      *ins)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:112,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_inspector.c:113,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:115,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:118,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - L
    - tidx
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: mcp_inspector_string_c_g
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - proxy_lua_ferror
    - lua_tolstring
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_string_c_g(lua_State *L, int tidx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:131,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_inspector.c:132,1
    - Dst: memcpy
      Src: /src/memcached/proxy_inspector.c:136,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - L
    - tidx
    - sc
    - ins
    argTypes:
    - lua_State*
    - int
    - int
    - struct mcp_inspector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: mcp_inspector_string_i_g
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - lua_tolstring
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_string_i_g(lua_State *L, int tidx, int sc, struct
      mcp_inspector *ins)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:147,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_inspector.c:149,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:151,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:154,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:156,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_inspector.c:157,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:159,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:161,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_inspector.c:162,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - L
    - tidx
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: mcp_inspector_sepkey_c
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_pop
    - proxy_lua_ferror
    - lua_getfield
    - lua_tolstring
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_sepkey_c(lua_State *L, int tidx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:174,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_inspector.c:175,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:181,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:183,1
    - Dst: lua_tointeger
      Src: /src/memcached/proxy_inspector.c:184,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:188,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:190,1
    - Dst: luaL_ref
      Src: /src/memcached/proxy_inspector.c:191,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - L
    - tidx
    - sc
    - ins
    argTypes:
    - lua_State*
    - int
    - int
    - struct mcp_inspector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 199
    functionName: mcp_inspector_sepkey_i
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_getfield
    - luaL_ref
    - lua_tostring
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_sepkey_i(lua_State *L, int tidx, int sc, struct mcp_inspector
      *ins)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_inspector.c:206,1
    - Dst: lua_rawgeti
      Src: /src/memcached/proxy_inspector.c:250,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_inspector.c:251,1
    - Dst: lua_rawget
      Src: /src/memcached/proxy_inspector.c:252,1
    - Dst: lua_remove
      Src: /src/memcached/proxy_inspector.c:253,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_inspector.c:257,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_inspector.c:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - L
    - ins
    - s
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - struct mcp_ins_step*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 264
    functionName: mcp_inspector_sepkey_r
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_rawgeti
    - lua_rawget
    - lua_pushnil
    - MCP_PARSER_KEY
    - lua_remove
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_sepkey_r(lua_State *L, struct mcp_inspector *ins,
      struct mcp_ins_step *s, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_inspector.c:270,1
    - Dst: strncmp
      Src: /src/memcached/proxy_inspector.c:274,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:275,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - L
    - ins
    - s
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - struct mcp_ins_step*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: mcp_inspector_keybegin_r
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - MCP_PARSER_KEY
    - strncmp
    - lua_pushboolean
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_keybegin_r(lua_State *L, struct mcp_inspector *ins,
      struct mcp_ins_step *s, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MCP_PARSER_KEY
      Src: /src/memcached/proxy_inspector.c:287,1
    - Dst: strncmp
      Src: /src/memcached/proxy_inspector.c:291,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:292,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - L
    - ins
    - s
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - struct mcp_ins_step*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 298
    functionName: mcp_inspector_keyis_r
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - MCP_PARSER_KEY
    - strncmp
    - lua_pushboolean
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_keyis_r(lua_State *L, struct mcp_inspector *ins,
      struct mcp_ins_step *s, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:305,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:306,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:308,1
    - Dst: mcmc_tokenize_res
      Src: /src/memcached/proxy_inspector.c:316,1
    - Dst: res_buf
      Src: /src/memcached/proxy_inspector.c:316,1
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:317,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:318,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:320,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_inspector.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - L
    - ins
    - s
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - struct mcp_ins_step*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 327
    functionName: mcp_inspector_hasflag_r
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - mcmc_tokenize_res
    - mcmc_token_has_flag_bit
    - lua_pushboolean
    - proxy_lua_error
    - res_buf
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_hasflag_r(lua_State *L, struct mcp_inspector *ins,
      struct mcp_ins_step *s, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:335,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:336,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_inspector.c:338,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_inspector.c:339,1
    - Dst: mcmc_tokenize_res
      Src: /src/memcached/proxy_inspector.c:345,1
    - Dst: res_buf
      Src: /src/memcached/proxy_inspector.c:345,1
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:346,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:347,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_inspector.c:349,1
    - Dst: res_buf
      Src: /src/memcached/proxy_inspector.c:349,1
    - Dst: lua_pushlstring
      Src: /src/memcached/proxy_inspector.c:350,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:355,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_inspector.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - L
    - ins
    - s
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - struct mcp_ins_step*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 359
    functionName: mcp_inspector_flagtoken_r
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - mcmc_tokenize_res
    - lua_pushnil
    - mcmc_token_has_flag_bit
    - mcmc_token_get_flag
    - lua_pushboolean
    - res_buf
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_flagtoken_r(lua_State *L, struct mcp_inspector *ins,
      struct mcp_ins_step *s, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:368,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:369,1
    - Dst: mcmc_token_get_flag_64
      Src: /src/memcached/proxy_inspector.c:371,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_inspector.c:373,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_inspector.c:376,1
    - Dst: mcmc_tokenize_res
      Src: /src/memcached/proxy_inspector.c:383,1
    - Dst: res_buf
      Src: /src/memcached/proxy_inspector.c:383,1
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:384,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:385,1
    - Dst: mcmc_token_get_flag_64
      Src: /src/memcached/proxy_inspector.c:387,1
    - Dst: res_buf
      Src: /src/memcached/proxy_inspector.c:387,1
    - Dst: lua_pushinteger
      Src: /src/memcached/proxy_inspector.c:388,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_inspector.c:390,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:396,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_inspector.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - L
    - ins
    - s
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - struct mcp_ins_step*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 400
    functionName: mcp_inspector_flagint_r
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - mcmc_tokenize_res
    - mcmc_token_has_flag_bit
    - lua_pushinteger
    - lua_pushboolean
    - res_buf
    - mcmc_token_get_flag_64
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_flagint_r(lua_State *L, struct mcp_inspector *ins,
      struct mcp_ins_step *s, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcp_inspector_flag_c_g
      Src: /src/memcached/proxy_inspector.c:403,1
    - Dst: mcp_inspector_string_c_g
      Src: /src/memcached/proxy_inspector.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - L
    - tidx
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: mcp_inspector_flagstr_c
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - mcp_inspector_string_c_g
    - mcp_inspector_flag_c_g
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_flagstr_c(lua_State *L, int tidx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:415,1
    - Dst: lua_tostring
      Src: /src/memcached/proxy_inspector.c:416,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:420,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:422,1
    - Dst: lua_tolstring
      Src: /src/memcached/proxy_inspector.c:423,1
    - Dst: memcpy
      Src: /src/memcached/proxy_inspector.c:427,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - L
    - tidx
    - sc
    - ins
    argTypes:
    - lua_State*
    - int
    - int
    - struct mcp_inspector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 433
    functionName: mcp_inspector_flagstr_i
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_getfield
    - lua_tostring
    - lua_tolstring
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_flagstr_i(lua_State *L, int tidx, int sc, struct
      mcp_inspector *ins)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:441,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:442,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_inspector.c:444,1
    - Dst: strncmp
      Src: /src/memcached/proxy_inspector.c:446,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:447,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:449,1
    - Dst: mcmc_tokenize_res
      Src: /src/memcached/proxy_inspector.c:456,1
    - Dst: res_buf
      Src: /src/memcached/proxy_inspector.c:456,1
    - Dst: mcmc_token_has_flag_bit
      Src: /src/memcached/proxy_inspector.c:457,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:458,1
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/proxy_inspector.c:460,1
    - Dst: res_buf
      Src: /src/memcached/proxy_inspector.c:460,1
    - Dst: strncmp
      Src: /src/memcached/proxy_inspector.c:461,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:462,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:464,1
    - Dst: lua_pushboolean
      Src: /src/memcached/proxy_inspector.c:470,1
    - Dst: lua_pushnil
      Src: /src/memcached/proxy_inspector.c:471,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - L
    - ins
    - s
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - struct mcp_ins_step*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 474
    functionName: mcp_inspector_flagis_r
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - mcmc_tokenize_res
    - strncmp
    - lua_pushnil
    - mcmc_token_has_flag_bit
    - mcmc_token_get_flag
    - lua_pushboolean
    - res_buf
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_flagis_r(lua_State *L, struct mcp_inspector *ins,
      struct mcp_ins_step *s, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/memcached/proxy_inspector.c:504,1
    - Dst: strcmp
      Src: /src/memcached/proxy_inspector.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: mcp_inspector_steptype
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - strcmp
    - luaL_checkstring
    linkageType: ''
    returnType: enum mcp_ins_steptype
    signature: enum mcp_ins_steptype mcp_inspector_steptype(lua_State *L)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/memcached/proxy_inspector.c:523,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_inspector.c:529,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:530,1
    - Dst: mcp_inspector_steptype
      Src: /src/memcached/proxy_inspector.c:531,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:534,1
    - Dst: proxy_lua_ferror
      Src: /src/memcached/proxy_inspector.c:537,1
    - Dst: struct mcp_ins_entry*::c
      Src: /src/memcached/proxy_inspector.c:539,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:541,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_inspector.c:553,1
    - Dst: memset
      Src: /src/memcached/proxy_inspector.c:554,1
    - Dst: malloc
      Src: /src/memcached/proxy_inspector.c:556,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_inspector.c:558,1
    - Dst: luaL_setmetatable
      Src: /src/memcached/proxy_inspector.c:561,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_inspector.c:564,1
    - Dst: luaL_getmetatable
      Src: /src/memcached/proxy_inspector.c:567,1
    - Dst: lua_setiuservalue
      Src: /src/memcached/proxy_inspector.c:571,1
    - Dst: lua_getfield
      Src: /src/memcached/proxy_inspector.c:578,1
    - Dst: mcp_inspector_steptype
      Src: /src/memcached/proxy_inspector.c:579,1
    - Dst: i
      Src: /src/memcached/proxy_inspector.c:581,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:584,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_inspector.c:589,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - L
    - type
    argTypes:
    - lua_State*
    - enum mcp_ins_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 594
    functionName: mcp_inspector_new
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_pop
    - proxy_lua_ferror
    - luaL_getmetatable
    - lua_setiuservalue
    - lua_newuserdatauv
    - malloc
    - i
    - struct mcp_ins_entry*::c
    - lua_gettop
    - mcp_inspector_steptype
    - lua_getfield
    - luaL_setmetatable
    - proxy_lua_error
    - memset
    linkageType: ''
    returnType: int
    signature: int mcp_inspector_new(lua_State *L, enum mcp_ins_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proxy_inspector.c:601,1
    - Dst: r
      Src: /src/memcached/proxy_inspector.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - L
    - ins
    - arg
    argTypes:
    - lua_State*
    - struct mcp_inspector*
    - void*
    assertStmts:
    - condition: (s->type != mcp_ins_step_none)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/memcached/proxy_inspector.c
    constantsTouched: []
    func_position:
      end: 606
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 606
    functionName: mcp_ins_run
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - assert
    - r
    linkageType: ''
    returnType: int
    signature: int mcp_ins_run(lua_State *L, struct mcp_inspector *ins, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcp_inspector_new
      Src: /src/memcached/proxy_inspector.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: mcplib_req_inspector_new
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - mcp_inspector_new
    linkageType: ''
    returnType: int
    signature: int mcplib_req_inspector_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcp_inspector_new
      Src: /src/memcached/proxy_inspector.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: mcplib_res_inspector_new
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - mcp_inspector_new
    linkageType: ''
    returnType: int
    signature: int mcplib_res_inspector_new(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_inspector.c:620,1
    - Dst: free
      Src: /src/memcached/proxy_inspector.c:623,1
    - Dst: luaL_unref
      Src: /src/memcached/proxy_inspector.c:632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 649
    functionName: mcplib_inspector_gc
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - luaL_unref
    - lua_touserdata
    - free
    linkageType: ''
    returnType: int
    signature: int mcplib_inspector_gc(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_inspector.c:658,1
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_inspector.c:659,1
    - Dst: lua_checkstack
      Src: /src/memcached/proxy_inspector.c:660,1
    - Dst: proxy_lua_error
      Src: /src/memcached/proxy_inspector.c:661,1
    - Dst: lua_getmetatable
      Src: /src/memcached/proxy_inspector.c:667,1
    - Dst: lua_getiuservalue
      Src: /src/memcached/proxy_inspector.c:668,1
    - Dst: luaL_argcheck
      Src: /src/memcached/proxy_inspector.c:669,1
    - Dst: lua_rawequal
      Src: /src/memcached/proxy_inspector.c:669,1
    - Dst: lua_pop
      Src: /src/memcached/proxy_inspector.c:671,1
    - Dst: lua_touserdata
      Src: /src/memcached/proxy_inspector.c:674,1
    - Dst: mcp_ins_run
      Src: /src/memcached/proxy_inspector.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 676
    functionName: mcplib_inspector_call
    functionSourceFile: /src/memcached/proxy_inspector.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - lua_getiuservalue
    - lua_checkstack
    - lua_pop
    - mcp_ins_run
    - lua_touserdata
    - lua_rawequal
    - luaL_argcheck
    - lua_getmetatable
    - proxy_lua_error
    linkageType: ''
    returnType: int
    signature: int mcplib_inspector_call(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: global_page_pool_size
      Src: /src/memcached/slabs_mover.c:105,1
    - Dst: slabs_peek_page
      Src: /src/memcached/slabs_mover.c:110,1
    - Dst: calloc
      Src: /src/memcached/slabs_mover.c:113,1
    - Dst: STATS_LOCK
      Src: /src/memcached/slabs_mover.c:132,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/slabs_mover.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct slab_rebal_thread*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 137
    functionName: slab_rebalance_start
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - global_page_pool_size
    - slabs_peek_page
    - STATS_LOCK
    - calloc
    - STATS_UNLOCK
    linkageType: ''
    returnType: int
    signature: int slab_rebalance_start(struct slab_rebal_thread *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slabs_alloc
      Src: /src/memcached/slabs_mover.c:145,1
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:158,1
    - Dst: ITEM_key
      Src: /src/memcached/slabs_mover.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - t
    - id
    argTypes:
    - struct slab_rebal_thread*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: slab_rebalance_alloc
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - slabs_alloc
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *slab_rebalance_alloc(struct slab_rebal_thread *t, unsigned int
      id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: slab_rebalance_alloc
      Src: /src/memcached/slabs_mover.c:177,1
    - Dst: lru_pull_tail
      Src: /src/memcached/slabs_mover.c:186,1
    - Dst: lru_pull_tail
      Src: /src/memcached/slabs_mover.c:188,1
    - Dst: slab_rebalance_alloc
      Src: /src/memcached/slabs_mover.c:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct slab_rebal_thread*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 197
    functionName: slab_rebalance_prep
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - slab_rebalance_alloc
    - lru_pull_tail
    linkageType: ''
    returnType: void
    signature: void slab_rebalance_prep(struct slab_rebal_thread *t)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/slabs_mover.c:239,1
    - Dst: assert
      Src: /src/memcached/slabs_mover.c:253,1
    - Dst: do_slabs_unlink_free_chunk
      Src: /src/memcached/slabs_mover.c:256,1
    - Dst: hash
      Src: /src/memcached/slabs_mover.c:265,1
    - Dst: ITEM_key
      Src: /src/memcached/slabs_mover.c:265,1
    - Dst: item_trylock
      Src: /src/memcached/slabs_mover.c:266,1
    - Dst: refcount_incr
      Src: /src/memcached/slabs_mover.c:270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (it->it_flags & ITEM_CHUNKED)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/memcached/slabs_mover.c
    - condition: (a->ch == NULL)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/memcached/slabs_mover.c
    constantsTouched: []
    func_position:
      end: 296
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 296
    functionName: _slabs_locked_cb
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - do_slabs_unlink_free_chunk
    - hash
    - assert
    - refcount_incr
    - item_trylock
    - ITEM_key
    linkageType: ''
    returnType: int
    signature: int _slabs_locked_cb(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/slabs_mover.c:305,1
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:307,1
    - Dst: do_item_replace
      Src: /src/memcached/slabs_mover.c:314,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/slabs_mover.c:314,1
    - Dst: ITEM_schunk
      Src: /src/memcached/slabs_mover.c:317,1
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:327,1
    - Dst: ITEM_key
      Src: /src/memcached/slabs_mover.c:327,1
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:336,1
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:341,1
    - Dst: ITEM_key
      Src: /src/memcached/slabs_mover.c:341,1
    - Dst: refcount_decr
      Src: /src/memcached/slabs_mover.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - t
    - a
    argTypes:
    - struct slab_rebal_thread*
    - struct _locked_st*
    assertStmts:
    - condition: ((new_it->it_flags & ITEM_CHUNKED) == 0)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/memcached/slabs_mover.c
    constantsTouched: []
    func_position:
      end: 348
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 348
    functionName: slab_rebalance_rescue
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - ITEM_schunk
    - refcount_decr
    - ITEM_key
    - assert
    - ITEM_get_cas
    - do_item_replace
    - memcpy
    linkageType: ''
    returnType: void
    signature: void slab_rebalance_rescue(struct slab_rebal_thread *t, struct _locked_st
      *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:363,1
    - Dst: do_item_replace
      Src: /src/memcached/slabs_mover.c:370,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/slabs_mover.c:370,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/slabs_mover.c:381,1
    - Dst: STORAGE_delete
      Src: /src/memcached/slabs_mover.c:382,1
    - Dst: do_item_unlink
      Src: /src/memcached/slabs_mover.c:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - t
    - a
    argTypes:
    - struct slab_rebal_thread*
    - struct _locked_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 390
    functionName: slab_rebalance_active_rescue
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - STORAGE_delete
    - LOGGER_LOG
    - do_item_unlink
    - ITEM_get_cas
    - do_item_replace
    - memcpy
    linkageType: ''
    returnType: int
    signature: int slab_rebalance_active_rescue(struct slab_rebal_thread *t, struct
      _locked_st *a)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/slabs_mover.c:399,1
    - Dst: slabs_locked_callback
      Src: /src/memcached/slabs_mover.c:411,1
    - Dst: item_is_flushed
      Src: /src/memcached/slabs_mover.c:430,1
    - Dst: STORAGE_delete
      Src: /src/memcached/slabs_mover.c:432,1
    - Dst: do_item_unlink
      Src: /src/memcached/slabs_mover.c:434,1
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:439,1
    - Dst: ITEM_key
      Src: /src/memcached/slabs_mover.c:439,1
    - Dst: do_item_remove
      Src: /src/memcached/slabs_mover.c:444,1
    - Dst: do_item_unlink
      Src: /src/memcached/slabs_mover.c:450,1
    - Dst: do_item_remove
      Src: /src/memcached/slabs_mover.c:451,1
    - Dst: refcount_decr
      Src: /src/memcached/slabs_mover.c:461,1
    - Dst: slab_rebalance_rescue
      Src: /src/memcached/slabs_mover.c:464,1
    - Dst: assert
      Src: /src/memcached/slabs_mover.c:467,1
    - Dst: slab_rebalance_active_rescue
      Src: /src/memcached/slabs_mover.c:469,1
    - Dst: do_item_remove
      Src: /src/memcached/slabs_mover.c:471,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/slabs_mover.c:476,1
    - Dst: memcpy
      Src: /src/memcached/slabs_mover.c:482,1
    - Dst: ITEM_key
      Src: /src/memcached/slabs_mover.c:482,1
    - Dst: assert
      Src: /src/memcached/slabs_mover.c:488,1
    - Dst: refcount_decr
      Src: /src/memcached/slabs_mover.c:490,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/slabs_mover.c:491,1
    - Dst: STATS_LOCK
      Src: /src/memcached/slabs_mover.c:512,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/slabs_mover.c:515,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 89
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct slab_rebal_thread*
    assertStmts:
    - condition: (it->refcount > 2)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/memcached/slabs_mover.c
    - condition: (it->refcount != 0)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/memcached/slabs_mover.c
    constantsTouched: []
    func_position:
      end: 526
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 526
    functionName: slab_rebalance_move
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - item_trylock_unlock
    - slabs_locked_callback
    - STORAGE_delete
    - refcount_decr
    - STATS_UNLOCK
    - slab_rebalance_active_rescue
    - do_item_unlink
    - ITEM_key
    - slab_rebalance_rescue
    - memset
    - assert
    - STATS_LOCK
    - do_item_remove
    - item_is_flushed
    - memcpy
    linkageType: ''
    returnType: int
    signature: int slab_rebalance_move(struct slab_rebal_thread *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/slabs_mover.c:534,1
    - Dst: assert
      Src: /src/memcached/slabs_mover.c:535,1
    - Dst: memcmp
      Src: /src/memcached/slabs_mover.c:535,1
    - Dst: ITEM_key
      Src: /src/memcached/slabs_mover.c:535,1
    - Dst: slabs_free
      Src: /src/memcached/slabs_mover.c:545,1
    - Dst: slabs_finalize_page_move
      Src: /src/memcached/slabs_mover.c:553,1
    - Dst: STATS_LOCK
      Src: /src/memcached/slabs_mover.c:556,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/slabs_mover.c:564,1
    - Dst: free
      Src: /src/memcached/slabs_mover.c:566,1
    - Dst: memset
      Src: /src/memcached/slabs_mover.c:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct slab_rebal_thread*
    assertStmts:
    - condition: (it->it_flags == (ITEM_SLABBED|ITEM_FETCHED))
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/memcached/slabs_mover.c
    - condition: (memcmp(ITEM_key(it), "deadbeef", 8) == 0)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/memcached/slabs_mover.c
    constantsTouched: []
    func_position:
      end: 569
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 569
    functionName: slab_rebalance_finish
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - free
    - memcmp
    - ITEM_key
    - assert
    - memset
    - slabs_finalize_page_move
    - STATS_LOCK
    - slabs_free
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void slab_rebalance_finish(struct slab_rebal_thread *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: struct slab_rebal_thread*::sam::init
      Src: /src/memcached/slabs_mover.c:585,1
    - Dst: struct slab_rebal_thread*::sam::free
      Src: /src/memcached/slabs_mover.c:588,1
    - Dst: struct slab_rebal_thread*::sam::run
      Src: /src/memcached/slabs_mover.c:594,1
    - Dst: do_slabs_reassign
      Src: /src/memcached/slabs_mover.c:598,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/slabs_mover.c:601,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - t
    - now
    argTypes:
    - struct slab_rebal_thread*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 611
    functionName: slab_rebalance_check_automove
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - struct slab_rebal_thread*::sam::run
    - LOGGER_LOG
    - struct slab_rebal_thread*::sam::free
    - do_slabs_reassign
    - struct slab_rebal_thread*::sam::init
    linkageType: ''
    returnType: int
    signature: "int slab_rebalance_check_automove(struct slab_rebal_thread *t,\n        struct
      timespec *now)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: logger_create
      Src: /src/memcached/slabs_mover.c:624,1
    - Dst: mutex_lock
      Src: /src/memcached/slabs_mover.c:626,1
    - Dst: slab_rebalance_start
      Src: /src/memcached/slabs_mover.c:634,1
    - Dst: slab_rebalance_finish
      Src: /src/memcached/slabs_mover.c:642,1
    - Dst: slab_rebalance_prep
      Src: /src/memcached/slabs_mover.c:645,1
    - Dst: slab_rebalance_move
      Src: /src/memcached/slabs_mover.c:647,1
    - Dst: usleep
      Src: /src/memcached/slabs_mover.c:650,1
    - Dst: clock_gettime
      Src: /src/memcached/slabs_mover.c:662,1
    - Dst: slab_rebalance_check_automove
      Src: /src/memcached/slabs_mover.c:663,1
    - Dst: mc_timespec_add
      Src: /src/memcached/slabs_mover.c:671,1
    - Dst: pthread_cond_timedwait
      Src: /src/memcached/slabs_mover.c:675,1
    - Dst: mutex_unlock
      Src: /src/memcached/slabs_mover.c:683,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 617
    functionDepth: 7
    functionLinenumber: 617
    functionLinenumberEnd: 685
    functionName: slab_rebalance_thread
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - slab_rebalance_start
    - slab_rebalance_finish
    - pthread_cond_timedwait
    - slab_rebalance_move
    - slab_rebalance_check_automove
    - usleep
    - logger_create
    - mutex_unlock
    - mc_timespec_add
    - mutex_lock
    - slab_rebalance_prep
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: void *slab_rebalance_thread(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: slabs_pick_any_for_reassign
      Src: /src/memcached/slabs_mover.c:693,1
    - Dst: slabs_page_count
      Src: /src/memcached/slabs_mover.c:701,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/slabs_mover.c:711,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - t
    - src
    - dst
    - flags
    argTypes:
    - struct slab_rebal_thread*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 714
    functionName: do_slabs_reassign
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 1
    functionsReached:
    - pthread_cond_signal
    - slabs_pick_any_for_reassign
    - slabs_page_count
    linkageType: ''
    returnType: enum reassign_result_type
    signature: enum reassign_result_type do_slabs_reassign(struct slab_rebal_thread
      *t, int src, int dst, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/memcached/slabs_mover.c:718,1
    - Dst: do_slabs_reassign
      Src: /src/memcached/slabs_mover.c:721,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs_mover.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - t
    - src
    - dst
    - flags
    argTypes:
    - struct slab_rebal_thread*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 724
    functionName: slabs_reassign
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_trylock
    - pthread_mutex_unlock
    - do_slabs_reassign
    linkageType: ''
    returnType: enum reassign_result_type
    signature: enum reassign_result_type slabs_reassign(struct slab_rebal_thread *t,
      int src, int dst, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs_mover.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct slab_rebal_thread*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 729
    functionName: slab_maintenance_pause
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void slab_maintenance_pause(struct slab_rebal_thread *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs_mover.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct slab_rebal_thread*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: slab_maintenance_resume
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void slab_maintenance_resume(struct slab_rebal_thread *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/slabs_mover.c:737,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/slabs_mover.c:741,1
    - Dst: pthread_cond_init
      Src: /src/memcached/slabs_mover.c:742,1
    - Dst: struct slab_rebal_thread*::sam::init
      Src: /src/memcached/slabs_mover.c:752,1
    - Dst: fprintf
      Src: /src/memcached/slabs_mover.c:754,1
    - Dst: pthread_create
      Src: /src/memcached/slabs_mover.c:758,1
    - Dst: fprintf
      Src: /src/memcached/slabs_mover.c:760,1
    - Dst: strerror
      Src: /src/memcached/slabs_mover.c:760,1
    - Dst: thread_setname
      Src: /src/memcached/slabs_mover.c:763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - storage
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 765
    functionName: start_slab_maintenance_thread
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_create
    - thread_setname
    - pthread_mutex_init
    - strerror
    - struct slab_rebal_thread*::sam::init
    - pthread_cond_init
    - calloc
    linkageType: ''
    returnType: struct slab_rebal_thread
    signature: struct slab_rebal_thread *start_slab_maintenance_thread(void *storage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/slabs_mover.c:770,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/slabs_mover.c:772,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/slabs_mover.c:773,1
    - Dst: pthread_join
      Src: /src/memcached/slabs_mover.c:776,1
    - Dst: pthread_mutex_destroy
      Src: /src/memcached/slabs_mover.c:778,1
    - Dst: pthread_cond_destroy
      Src: /src/memcached/slabs_mover.c:779,1
    - Dst: free
      Src: /src/memcached/slabs_mover.c:781,1
    - Dst: struct slab_rebal_thread*::sam::free
      Src: /src/memcached/slabs_mover.c:783,1
    - Dst: free
      Src: /src/memcached/slabs_mover.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct slab_rebal_thread*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 787
    functionName: stop_slab_maintenance_thread
    functionSourceFile: /src/memcached/slabs_mover.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - free
    - pthread_cond_signal
    - pthread_cond_destroy
    - pthread_mutex_destroy
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - struct slab_rebal_thread*::sam::free
    linkageType: ''
    returnType: void
    signature: void stop_slab_maintenance_thread(struct slab_rebal_thread *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: CLEAR_LRU
    functionSourceFile: /src/memcached/items.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_LRU(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: GET_LRU
    functionSourceFile: /src/memcached/items.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LRU(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hash
    - ctx
    argTypes:
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: mcplib_dist_jump_hash_get_server
    functionSourceFile: /src/memcached/proxy_jump_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mcplib_dist_jump_hash_get_server(uint64_t hash, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checktype
      Src: /src/memcached/proxy_jump_hash.c:24,1
    - Dst: lua_rawlen
      Src: /src/memcached/proxy_jump_hash.c:25,1
    - Dst: lua_newuserdatauv
      Src: /src/memcached/proxy_jump_hash.c:27,1
    - Dst: lua_pushlightuserdata
      Src: /src/memcached/proxy_jump_hash.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: mcplib_dist_jump_hash_new
    functionSourceFile: /src/memcached/proxy_jump_hash.c
    functionUses: 0
    functionsReached:
    - lua_newuserdatauv
    - lua_pushlightuserdata
    - luaL_checktype
    - lua_rawlen
    linkageType: ''
    returnType: int
    signature: int mcplib_dist_jump_hash_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_newlib
      Src: /src/memcached/proxy_jump_hash.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: mcplib_open_dist_jump_hash
    functionSourceFile: /src/memcached/proxy_jump_hash.c
    functionUses: 1
    functionsReached:
    - luaL_newlib
    linkageType: ''
    returnType: int
    signature: int mcplib_open_dist_jump_hash(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: QMD_TRACE_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_TRACE_HEAD(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: QMD_TRACE_ELEM
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_TRACE_ELEM(elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - link
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: QMD_SAVELINK
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_SAVELINK(name, link)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: TRASHIT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRASHIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: QMD_IS_TRASHED
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_IS_TRASHED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: QMD_IS_TRASHED
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_IS_TRASHED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: QUEUE_TYPEOF
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUEUE_TYPEOF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: QUEUE_TYPEOF
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUEUE_TYPEOF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: SLIST_HEAD_INITIALIZER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - prevp
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: QMD_SLIST_CHECK_PREVPTR
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_SLIST_CHECK_PREVPTR(prevp, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: SLIST_CONCAT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_CONCAT(head1, head2, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: SLIST_EMPTY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: SLIST_FIRST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: SLIST_FOREACH
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: SLIST_FOREACH_FROM
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH_FROM(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: SLIST_FOREACH_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: SLIST_FOREACH_FROM_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH_FROM_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - varp
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: SLIST_FOREACH_PREVPTR
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH_PREVPTR(var, varp, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: SLIST_INIT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - slistelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: SLIST_INSERT_AFTER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_AFTER(slistelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: SLIST_INSERT_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: SLIST_NEXT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 286
    functionName: SLIST_REMOVE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE(head, elm, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: SLIST_REMOVE_AFTER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE_AFTER(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: SLIST_REMOVE_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - prevp
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: SLIST_REMOVE_PREVPTR
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE_PREVPTR(prevp, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: SLIST_SWAP
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_SWAP(head1, head2, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: STAILQ_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: STAILQ_CLASS_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_CLASS_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: STAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head1
    - ','
    - head2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: STAILQ_CONCAT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_CONCAT(head1, head2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: STAILQ_EMPTY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: STAILQ_FIRST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: STAILQ_FOREACH
    functionSourceFile: /src/memcached/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: STAILQ_FOREACH_FROM
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_FOREACH_FROM(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: STAILQ_FOREACH_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: STAILQ_FOREACH_FROM_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: STAILQ_INIT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - tqelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: STAILQ_INSERT_AFTER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_INSERT_AFTER(head, tqelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 387
    functionName: STAILQ_INSERT_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: STAILQ_INSERT_TAIL
    functionSourceFile: /src/memcached/queue.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: STAILQ_LAST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_LAST(head, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    functionName: STAILQ_NEXT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 414
    functionName: STAILQ_REMOVE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_REMOVE(head, elm, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: STAILQ_REMOVE_AFTER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_REMOVE_AFTER(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 426
    functionName: STAILQ_REMOVE_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 439
    functionName: STAILQ_SWAP
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAILQ_SWAP(head1, head2, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: LIST_HEAD_INITIALIZER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: LIST_ENTRY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: LIST_CLASS_ENTRY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_CLASS_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 485
    functionName: QMD_LIST_CHECK_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_LIST_CHECK_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: QMD_LIST_CHECK_NEXT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_LIST_CHECK_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: QMD_LIST_CHECK_PREV
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_LIST_CHECK_PREV(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 530
    functionName: LIST_CONCAT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_CONCAT(head1, head2, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 532
    functionName: LIST_EMPTY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: LIST_FIRST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: LIST_FOREACH
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: LIST_FOREACH_FROM
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH_FROM(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: LIST_FOREACH_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 554
    functionName: LIST_FOREACH_FROM_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH_FROM_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: LIST_INIT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 567
    functionName: LIST_INSERT_AFTER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_AFTER(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: LIST_INSERT_BEFORE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 583
    functionName: LIST_INSERT_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 585
    functionName: LIST_NEXT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - elm
    - ','
    - head
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: LIST_PREV
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_PREV(elm, head, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 603
    functionName: LIST_REMOVE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REMOVE(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: LIST_SWAP
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_SWAP(head1, head2, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: TAILQ_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 626
    functionName: TAILQ_CLASS_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_CLASS_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    functionName: TAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 636
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: TAILQ_CLASS_ENTRY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_CLASS_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 664
    functionName: QMD_TAILQ_CHECK_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_TAILQ_CHECK_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: QMD_TAILQ_CHECK_TAIL
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_TAILQ_CHECK_TAIL(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 687
    functionName: QMD_TAILQ_CHECK_NEXT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_TAILQ_CHECK_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 697
    functionName: QMD_TAILQ_CHECK_PREV
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMD_TAILQ_CHECK_PREV(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 714
    functionName: TAILQ_CONCAT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_CONCAT(head1, head2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 716
    functionName: TAILQ_EMPTY
    functionSourceFile: /src/memcached/queue.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 718
    functionName: TAILQ_FIRST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/memcached/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: TAILQ_FOREACH_FROM
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_FROM(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: TAILQ_FOREACH_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: TAILQ_FOREACH_FROM_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: TAILQ_FOREACH_REVERSE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE(var, head, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 748
    functionName: TAILQ_FOREACH_REVERSE_FROM
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: TAILQ_FOREACH_REVERSE_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 758
    functionName: TAILQ_FOREACH_REVERSE_FROM_SAFE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 764
    functionName: TAILQ_INIT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 779
    functionName: TAILQ_INSERT_AFTER
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 789
    functionName: TAILQ_INSERT_BEFORE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 802
    functionName: TAILQ_INSERT_HEAD
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 812
    functionName: TAILQ_INSERT_TAIL
    functionSourceFile: /src/memcached/queue.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - headname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 815
    functionName: TAILQ_LAST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_LAST(head, headname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: TAILQ_LAST_FAST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_LAST_FAST(head, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 827
    functionName: TAILQ_NEXT
    functionSourceFile: /src/memcached/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: TAILQ_PREV
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_PREV(elm, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - elm
    - ','
    - head
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 834
    functionName: TAILQ_PREV_FAST
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_PREV_FAST(elm, head, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 852
    functionName: TAILQ_REMOVE
    functionSourceFile: /src/memcached/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 869
    functionName: TAILQ_SWAP
    functionSourceFile: /src/memcached/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_SWAP(head1, head2, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: hashsize
    functionSourceFile: /src/memcached/thread.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashsize(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: hashmask
    functionSourceFile: /src/memcached/thread.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmask(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/memcached/thread.c:118,1
    - Dst: hashmask
      Src: /src/memcached/thread.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hv
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: item_lock
    functionSourceFile: /src/memcached/thread.c
    functionUses: 4
    functionsReached:
    - mutex_lock
    - hashmask
    linkageType: ''
    returnType: void
    signature: void item_lock(uint32_t hv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmask
      Src: /src/memcached/thread.c:122,1
    - Dst: pthread_mutex_trylock
      Src: /src/memcached/thread.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hv
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: item_trylock
    functionSourceFile: /src/memcached/thread.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_trylock
    - hashmask
    linkageType: ''
    returnType: void
    signature: void *item_trylock(uint32_t hv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutex_unlock
      Src: /src/memcached/thread.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: item_trylock_unlock
    functionSourceFile: /src/memcached/thread.c
    functionUses: 3
    functionsReached:
    - mutex_unlock
    linkageType: ''
    returnType: void
    signature: void item_trylock_unlock(void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mutex_unlock
      Src: /src/memcached/thread.c:134,1
    - Dst: hashmask
      Src: /src/memcached/thread.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hv
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: item_unlock
    functionSourceFile: /src/memcached/thread.c
    functionUses: 11
    functionsReached:
    - mutex_unlock
    - hashmask
    linkageType: ''
    returnType: void
    signature: void item_unlock(uint32_t hv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_wait
      Src: /src/memcached/thread.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nthreads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: wait_for_thread_registration
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void wait_for_thread_registration(int nthreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:144,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/thread.c:146,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:147,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:149,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: register_thread_initialized
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_cond_signal
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void register_thread_initialized(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: slab_maintenance_pause
      Src: /src/memcached/thread.c:160,1
    - Dst: lru_maintainer_pause
      Src: /src/memcached/thread.c:161,1
    - Dst: lru_crawler_pause
      Src: /src/memcached/thread.c:162,1
    - Dst: storage_compact_pause
      Src: /src/memcached/thread.c:164,1
    - Dst: storage_write_pause
      Src: /src/memcached/thread.c:165,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:169,1
    - Dst: slab_maintenance_resume
      Src: /src/memcached/thread.c:172,1
    - Dst: lru_maintainer_resume
      Src: /src/memcached/thread.c:173,1
    - Dst: lru_crawler_resume
      Src: /src/memcached/thread.c:174,1
    - Dst: storage_compact_resume
      Src: /src/memcached/thread.c:176,1
    - Dst: storage_write_resume
      Src: /src/memcached/thread.c:177,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:180,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:183,1
    - Dst: assert
      Src: /src/memcached/thread.c:184,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:193,1
    - Dst: notify_worker_fd
      Src: /src/memcached/thread.c:196,1
    - Dst: wait_for_thread_registration
      Src: /src/memcached/thread.c:198,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum pause_thread_types
    assertStmts:
    - condition: (1 == 0)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/memcached/thread.c
    constantsTouched: []
    func_position:
      end: 200
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 200
    functionName: pause_threads
    functionSourceFile: /src/memcached/thread.c
    functionUses: 1
    functionsReached:
    - slab_maintenance_resume
    - fprintf
    - slab_maintenance_pause
    - storage_write_resume
    - wait_for_thread_registration
    - storage_compact_pause
    - storage_write_pause
    - lru_maintainer_pause
    - lru_crawler_resume
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - lru_maintainer_resume
    - notify_worker_fd
    - lru_crawler_pause
    - assert
    - storage_compact_resume
    linkageType: ''
    returnType: void
    signature: void pause_threads(enum pause_thread_types type)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: stop_assoc_maintenance_thread
      Src: /src/memcached/thread.c:210,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:212,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:215,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:217,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:218,1
    - Dst: notify_worker_fd
      Src: /src/memcached/thread.c:221,1
    - Dst: wait_for_thread_registration
      Src: /src/memcached/thread.c:223,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:224,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:229,1
    - Dst: stop_item_crawler_thread
      Src: /src/memcached/thread.c:233,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:235,1
    - Dst: stop_lru_maintainer_thread
      Src: /src/memcached/thread.c:237,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:239,1
    - Dst: stop_slab_maintenance_thread
      Src: /src/memcached/thread.c:242,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:244,1
    - Dst: logger_stop
      Src: /src/memcached/thread.c:246,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:248,1
    - Dst: stop_conn_timeout_thread
      Src: /src/memcached/thread.c:249,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:251,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:255,1
    - Dst: conn_close_all
      Src: /src/memcached/thread.c:256,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:257,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:259,1
    - Dst: pthread_join
      Src: /src/memcached/thread.c:261,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:265,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 268
    functionName: stop_threads
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - wait_for_thread_registration
    - fprintf
    - conn_close_all
    - stop_conn_timeout_thread
    - stop_assoc_maintenance_thread
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - notify_worker_fd
    - stop_lru_maintainer_thread
    - stop_slab_maintenance_thread
    - stop_item_crawler_thread
    - logger_stop
    linkageType: ''
    returnType: void
    signature: void stop_threads(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/memcached/thread.c:274,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/thread.c:275,1
    - Dst: cache_create
      Src: /src/memcached/thread.c:276,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:278,1
    - Dst: exit
      Src: /src/memcached/thread.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cq
    argTypes:
    - CQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: cq_init
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    - fprintf
    - pthread_mutex_init
    - exit
    - cache_create
    linkageType: ''
    returnType: void
    signature: void cq_init(CQ *cq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:291,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/thread.c:292,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/thread.c:294,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cq
    argTypes:
    - CQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: cq_pop
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - STAILQ_FIRST
    - pthread_mutex_unlock
    - STAILQ_REMOVE_HEAD
    - pthread_mutex_lock
    linkageType: ''
    returnType: CQ_ITEM
    signature: CQ_ITEM *cq_pop(CQ *cq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:305,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/thread.c:306,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cq
    - item
    argTypes:
    - CQ*
    - CQ_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: cq_push
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - STAILQ_INSERT_TAIL
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void cq_push(CQ *cq, CQ_ITEM *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_alloc
      Src: /src/memcached/thread.c:314,1
    - Dst: STATS_LOCK
      Src: /src/memcached/thread.c:316,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/thread.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cq
    argTypes:
    - CQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: cqi_new
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - STATS_UNLOCK
    - cache_alloc
    - STATS_LOCK
    linkageType: ''
    returnType: CQ_ITEM
    signature: CQ_ITEM *cqi_new(CQ *cq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cache_free
      Src: /src/memcached/thread.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cq
    - item
    argTypes:
    - CQ*
    - CQ_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: cqi_free
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - cache_free
    linkageType: ''
    returnType: void
    signature: void cqi_free(CQ *cq, CQ_ITEM *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cq_push
      Src: /src/memcached/thread.c:337,1
    - Dst: write
      Src: /src/memcached/thread.c:340,1
    - Dst: perror
      Src: /src/memcached/thread.c:341,1
    - Dst: write
      Src: /src/memcached/thread.c:346,1
    - Dst: perror
      Src: /src/memcached/thread.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - t
    - item
    argTypes:
    - LIBEVENT_THREAD*
    - CQ_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 351
    functionName: notify_worker
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - write
    - perror
    - cq_push
    linkageType: ''
    returnType: void
    signature: void notify_worker(LIBEVENT_THREAD *t, CQ_ITEM *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cqi_new
      Src: /src/memcached/thread.c:356,1
    - Dst: notify_worker
      Src: /src/memcached/thread.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - t
    - sfd
    - mode
    argTypes:
    - LIBEVENT_THREAD*
    - int
    - enum conn_queue_item_modes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 370
    functionName: notify_worker_fd
    functionSourceFile: /src/memcached/thread.c
    functionUses: 2
    functionsReached:
    - notify_worker
    - cqi_new
    linkageType: ''
    returnType: void
    signature: void notify_worker_fd(LIBEVENT_THREAD *t, int sfd, enum conn_queue_item_modes
      mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_attr_init
      Src: /src/memcached/thread.c:379,1
    - Dst: pthread_create
      Src: /src/memcached/thread.c:381,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:382,1
    - Dst: strerror
      Src: /src/memcached/thread.c:383,1
    - Dst: exit
      Src: /src/memcached/thread.c:384,1
    - Dst: thread_setname
      Src: /src/memcached/thread.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - (*func)(void *)
    - arg
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: create_worker
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_attr_init
    - pthread_create
    - thread_setname
    - exit
    - strerror
    linkageType: ''
    returnType: void
    signature: void create_worker(void *(*func)(void *), void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:394,1
    - Dst: do_accept_new_conns
      Src: /src/memcached/thread.c:395,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - do_accept
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: accept_new_conns
    functionSourceFile: /src/memcached/thread.c
    functionUses: 3
    functionsReached:
    - do_accept_new_conns
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void accept_new_conns(const bool do_accept)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_set
      Src: /src/memcached/thread.c:403,1
    - Dst: event_set
      Src: /src/memcached/thread.c:406,1
    - Dst: event_base_set
      Src: /src/memcached/thread.c:409,1
    - Dst: event_add
      Src: /src/memcached/thread.c:411,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:412,1
    - Dst: exit
      Src: /src/memcached/thread.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - me
    - tn
    argTypes:
    - LIBEVENT_THREAD*
    - struct thread_notify*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 415
    functionName: setup_thread_notify
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - event_set
    - fprintf
    - event_base_set
    - exit
    - event_add
    linkageType: ''
    returnType: void
    signature: "void setup_thread_notify(LIBEVENT_THREAD *me, struct thread_notify
      *tn,\n        void(*cb)(int, short, void *))"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/memcached/thread.c:423,1
    - Dst: event_config_set_flag
      Src: /src/memcached/thread.c:424,1
    - Dst: event_base_new_with_config
      Src: /src/memcached/thread.c:425,1
    - Dst: event_config_free
      Src: /src/memcached/thread.c:426,1
    - Dst: event_init
      Src: /src/memcached/thread.c:428,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:432,1
    - Dst: exit
      Src: /src/memcached/thread.c:433,1
    - Dst: setup_thread_notify
      Src: /src/memcached/thread.c:437,1
    - Dst: setup_thread_notify
      Src: /src/memcached/thread.c:438,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/thread.c:439,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/thread.c:440,1
    - Dst: malloc
      Src: /src/memcached/thread.c:442,1
    - Dst: perror
      Src: /src/memcached/thread.c:444,1
    - Dst: exit
      Src: /src/memcached/thread.c:445,1
    - Dst: cq_init
      Src: /src/memcached/thread.c:447,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/thread.c:449,1
    - Dst: perror
      Src: /src/memcached/thread.c:450,1
    - Dst: exit
      Src: /src/memcached/thread.c:451,1
    - Dst: cache_create
      Src: /src/memcached/thread.c:454,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:456,1
    - Dst: exit
      Src: /src/memcached/thread.c:457,1
    - Dst: cache_set_limit
      Src: /src/memcached/thread.c:468,1
    - Dst: cache_create
      Src: /src/memcached/thread.c:471,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:473,1
    - Dst: exit
      Src: /src/memcached/thread.c:474,1
    - Dst: malloc
      Src: /src/memcached/thread.c:478,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:480,1
    - Dst: exit
      Src: /src/memcached/thread.c:481,1
    - Dst: thread_io_queue_add
      Src: /src/memcached/thread.c:488,1
    - Dst: thread_io_queue_add
      Src: /src/memcached/thread.c:493,1
    - Dst: proxy_thread_init
      Src: /src/memcached/thread.c:498,1
    - Dst: thread_io_queue_add
      Src: /src/memcached/thread.c:501,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 1
    argNames:
    - me
    argTypes:
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 420
    functionDepth: 4
    functionLinenumber: 420
    functionLinenumberEnd: 502
    functionName: setup_thread
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    - fprintf
    - malloc
    - cq_init
    - proxy_thread_init
    - event_init
    - event_config_free
    - exit
    - pthread_mutex_init
    - perror
    - thread_io_queue_add
    - event_base_new_with_config
    - event_config_set_flag
    - event_config_new
    - setup_thread_notify
    - cache_set_limit
    - cache_create
    linkageType: ''
    returnType: void
    signature: void setup_thread(LIBEVENT_THREAD *me)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: logger_create
      Src: /src/memcached/thread.c:513,1
    - Dst: item_lru_bump_buf_create
      Src: /src/memcached/thread.c:514,1
    - Dst: abort
      Src: /src/memcached/thread.c:516,1
    - Dst: drop_worker_privileges
      Src: /src/memcached/thread.c:520,1
    - Dst: register_thread_initialized
      Src: /src/memcached/thread.c:523,1
    - Dst: event_base_got_exit
      Src: /src/memcached/thread.c:524,1
    - Dst: event_base_loop
      Src: /src/memcached/thread.c:525,1
    - Dst: thread_io_queue_submit
      Src: /src/memcached/thread.c:528,1
    - Dst: proxy_gc_poke
      Src: /src/memcached/thread.c:531,1
    - Dst: register_thread_initialized
      Src: /src/memcached/thread.c:536,1
    - Dst: event_base_free
      Src: /src/memcached/thread.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 540
    functionName: worker_libevent
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - drop_worker_privileges
    - proxy_gc_poke
    - register_thread_initialized
    - event_base_free
    - logger_create
    - abort
    - event_base_loop
    - thread_io_queue_submit
    - event_base_got_exit
    - item_lru_bump_buf_create
    linkageType: ''
    returnType: void
    signature: void *worker_libevent(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_INIT
      Src: /src/memcached/thread.c:552,1
    - Dst: read
      Src: /src/memcached/thread.c:554,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:556,1
    - Dst: read
      Src: /src/memcached/thread.c:562,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:565,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:573,1
    - Dst: STAILQ_CONCAT
      Src: /src/memcached/thread.c:574,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:575,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/thread.c:577,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/thread.c:578,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/thread.c:579,1
    - Dst: conn_io_queue_return
      Src: /src/memcached/thread.c:580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 582
    functionName: thread_libevent_ionotify
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - STAILQ_INIT
    - fprintf
    - STAILQ_EMPTY
    - STAILQ_CONCAT
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAILQ_FIRST
    - conn_io_queue_return
    - STAILQ_REMOVE_HEAD
    - read
    linkageType: ''
    returnType: void
    signature: void thread_libevent_ionotify(evutil_socket_t fd, short which, void
      *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/memcached/thread.c:597,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:599,1
    - Dst: read
      Src: /src/memcached/thread.c:605,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:608,1
    - Dst: cq_pop
      Src: /src/memcached/thread.c:614,1
    - Dst: conn_new
      Src: /src/memcached/thread.c:621,1
    - Dst: IS_UDP
      Src: /src/memcached/thread.c:625,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:626,1
    - Dst: exit
      Src: /src/memcached/thread.c:627,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:630,1
    - Dst: ssl_conn_close
      Src: /src/memcached/thread.c:634,1
    - Dst: close
      Src: /src/memcached/thread.c:637,1
    - Dst: assert
      Src: /src/memcached/thread.c:643,1
    - Dst: register_thread_initialized
      Src: /src/memcached/thread.c:651,1
    - Dst: conn_close_idle
      Src: /src/memcached/thread.c:655,1
    - Dst: conn_worker_readd
      Src: /src/memcached/thread.c:659,1
    - Dst: event_base_loopexit
      Src: /src/memcached/thread.c:663,1
    - Dst: proxy_worker_reload
      Src: /src/memcached/thread.c:667,1
    - Dst: cqi_free
      Src: /src/memcached/thread.c:672,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts:
    - condition: (c->thread && c->thread->ssl_wbuf)
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/memcached/thread.c
    constantsTouched: []
    func_position:
      end: 674
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 674
    functionName: thread_libevent_process
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - proxy_worker_reload
    - fprintf
    - ssl_conn_close
    - cq_pop
    - register_thread_initialized
    - conn_worker_readd
    - event_base_loopexit
    - cqi_free
    - exit
    - assert
    - IS_UDP
    - close
    - read
    - conn_new
    - conn_close_idle
    linkageType: ''
    returnType: void
    signature: void thread_libevent_process(evutil_socket_t fd, short which, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/thread.c:680,1
    - Dst: strlen
      Src: /src/memcached/thread.c:680,1
    - Dst: pthread_setname_np
      Src: /src/memcached/thread.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - thread
    - name
    argTypes:
    - pthread_t
    - char*
    assertStmts:
    - condition: (strlen(name) < THR_NAME_MAXLEN)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/memcached/thread.c
    constantsTouched: []
    func_position:
      end: 684
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 684
    functionName: thread_setname
    functionSourceFile: /src/memcached/thread.c
    functionUses: 9
    functionsReached:
    - pthread_setname_np
    - strlen
    - assert
    linkageType: ''
    returnType: void
    signature: void thread_setname(pthread_t thread, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 691
    functionName: get_worker_thread
    functionSourceFile: /src/memcached/thread.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LIBEVENT_THREAD
    signature: LIBEVENT_THREAD *get_worker_thread(int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 706
    functionName: select_thread_round_robin
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIBEVENT_THREAD
    signature: LIBEVENT_THREAD *select_thread_round_robin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 719
    functionName: reset_threads_napi_id
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_threads_napi_id(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/memcached/thread.c:733,1
    - Dst: STATS_LOCK
      Src: /src/memcached/thread.c:735,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/thread.c:737,1
    - Dst: select_thread_round_robin
      Src: /src/memcached/thread.c:738,1
    - Dst: STATS_LOCK
      Src: /src/memcached/thread.c:757,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/thread.c:759,1
    - Dst: reset_threads_napi_id
      Src: /src/memcached/thread.c:760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - sfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 765
    functionName: select_thread_by_napi_id
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - reset_threads_napi_id
    - select_thread_round_robin
    - STATS_LOCK
    - STATS_UNLOCK
    linkageType: ''
    returnType: LIBEVENT_THREAD
    signature: LIBEVENT_THREAD *select_thread_by_napi_id(int sfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: select_thread_round_robin
      Src: /src/memcached/thread.c:779,1
    - Dst: select_thread_by_napi_id
      Src: /src/memcached/thread.c:781,1
    - Dst: cqi_new
      Src: /src/memcached/thread.c:783,1
    - Dst: close
      Src: /src/memcached/thread.c:785,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:787,1
    - Dst: MEMCACHED_CONN_DISPATCH
      Src: /src/memcached/thread.c:801,1
    - Dst: notify_worker
      Src: /src/memcached/thread.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 8
    argNames:
    - sfd
    - init_state
    - event_flags
    - read_buffer_size
    - transport
    - ssl
    - conntag
    - bproto
    argTypes:
    - int
    - enum conn_states
    - int
    - int
    - enum network_transport
    - void*
    - uint64_t
    - enum protocol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 803
    functionName: dispatch_conn_new
    functionSourceFile: /src/memcached/thread.c
    functionUses: 2
    functionsReached:
    - fprintf
    - MEMCACHED_CONN_DISPATCH
    - select_thread_by_napi_id
    - close
    - select_thread_round_robin
    - notify_worker
    - cqi_new
    linkageType: ''
    returnType: void
    signature: "void dispatch_conn_new(int sfd, enum conn_states init_state, int event_flags,\n
      \                      int read_buffer_size, enum network_transport transport,
      void *ssl,\n                       uint64_t conntag, enum protocol bproto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_worker_fd
      Src: /src/memcached/thread.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 809
    functionDepth: 4
    functionLinenumber: 809
    functionLinenumberEnd: 811
    functionName: redispatch_conn
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - notify_worker_fd
    linkageType: ''
    returnType: void
    signature: void redispatch_conn(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_worker_fd
      Src: /src/memcached/thread.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 813
    functionDepth: 4
    functionLinenumber: 813
    functionLinenumberEnd: 815
    functionName: timeout_conn
    functionSourceFile: /src/memcached/thread.c
    functionUses: 1
    functionsReached:
    - notify_worker_fd
    linkageType: ''
    returnType: void
    signature: void timeout_conn(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_worker_fd
      Src: /src/memcached/thread.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 819
    functionName: proxy_reload_notify
    functionSourceFile: /src/memcached/thread.c
    functionUses: 1
    functionsReached:
    - notify_worker_fd
    linkageType: ''
    returnType: void
    signature: void proxy_reload_notify(LIBEVENT_THREAD *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:825,1
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/thread.c:826,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/memcached/thread.c:829,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:830,1
    - Dst: write
      Src: /src/memcached/thread.c:837,1
    - Dst: perror
      Src: /src/memcached/thread.c:838,1
    - Dst: write
      Src: /src/memcached/thread.c:843,1
    - Dst: perror
      Src: /src/memcached/thread.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - io
    argTypes:
    - io_pending_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 849
    functionName: return_io_pending
    functionSourceFile: /src/memcached/thread.c
    functionUses: 5
    functionsReached:
    - write
    - STAILQ_EMPTY
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAILQ_INSERT_TAIL
    - perror
    linkageType: ''
    returnType: void
    signature: void return_io_pending(io_pending_t *io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/memcached/thread.c:854,1
    - Dst: redispatch_conn
      Src: /src/memcached/thread.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 852
    functionDepth: 5
    functionLinenumber: 852
    functionLinenumberEnd: 860
    functionName: sidethread_conn_close
    functionSourceFile: /src/memcached/thread.c
    functionUses: 1
    functionsReached:
    - redispatch_conn
    - fprintf
    linkageType: ''
    returnType: void
    signature: void sidethread_conn_close(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_item_alloc
      Src: /src/memcached/thread.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - nkey
    - flags
    - exptime
    - nbytes
    argTypes:
    - char*
    - size_t
    - client_flags_t
    - rel_time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 872
    functionName: item_alloc
    functionSourceFile: /src/memcached/thread.c
    functionUses: 10
    functionsReached:
    - do_item_alloc
    linkageType: ''
    returnType: item
    signature: item *item_alloc(const char *key, size_t nkey, client_flags_t flags,
      rel_time_t exptime, int nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/thread.c:881,1
    - Dst: item_lock
      Src: /src/memcached/thread.c:882,1
    - Dst: do_item_get
      Src: /src/memcached/thread.c:883,1
    - Dst: item_unlock
      Src: /src/memcached/thread.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - key
    - nkey
    - t
    - do_update
    argTypes:
    - char*
    - size_t
    - LIBEVENT_THREAD*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 886
    functionName: item_get
    functionSourceFile: /src/memcached/thread.c
    functionUses: 5
    functionsReached:
    - item_unlock
    - do_item_get
    - hash
    - item_lock
    linkageType: ''
    returnType: item
    signature: item *item_get(const char *key, const size_t nkey, LIBEVENT_THREAD
      *t, const bool do_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/thread.c:893,1
    - Dst: item_lock
      Src: /src/memcached/thread.c:894,1
    - Dst: do_item_get
      Src: /src/memcached/thread.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - key
    - nkey
    - t
    - do_update
    - hv
    argTypes:
    - char*
    - size_t
    - LIBEVENT_THREAD*
    - bool
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 897
    functionName: item_get_locked
    functionSourceFile: /src/memcached/thread.c
    functionUses: 4
    functionsReached:
    - do_item_get
    - hash
    - item_lock
    linkageType: ''
    returnType: item
    signature: item *item_get_locked(const char *key, const size_t nkey, LIBEVENT_THREAD
      *t, const bool do_update, uint32_t *hv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/thread.c:902,1
    - Dst: item_lock
      Src: /src/memcached/thread.c:903,1
    - Dst: do_item_touch
      Src: /src/memcached/thread.c:904,1
    - Dst: item_unlock
      Src: /src/memcached/thread.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - key
    - nkey
    - exptime
    - t
    argTypes:
    - char*
    - size_t
    - uint32_t
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 907
    functionName: item_touch
    functionSourceFile: /src/memcached/thread.c
    functionUses: 3
    functionsReached:
    - item_unlock
    - hash
    - do_item_touch
    - item_lock
    linkageType: ''
    returnType: item
    signature: item *item_touch(const char *key, size_t nkey, uint32_t exptime, LIBEVENT_THREAD
      *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/thread.c:915,1
    - Dst: ITEM_key
      Src: /src/memcached/thread.c:915,1
    - Dst: item_lock
      Src: /src/memcached/thread.c:917,1
    - Dst: do_item_remove
      Src: /src/memcached/thread.c:918,1
    - Dst: item_unlock
      Src: /src/memcached/thread.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 920
    functionName: item_remove
    functionSourceFile: /src/memcached/thread.c
    functionUses: 28
    functionsReached:
    - item_unlock
    - hash
    - do_item_remove
    - ITEM_key
    - item_lock
    linkageType: ''
    returnType: void
    signature: void item_remove(item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_item_replace
      Src: /src/memcached/thread.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - old_it
    - new_it
    - hv
    - cas_in
    argTypes:
    - item*
    - item*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: item_replace
    functionSourceFile: /src/memcached/thread.c
    functionUses: 7
    functionsReached:
    - do_item_replace
    linkageType: ''
    returnType: int
    signature: int item_replace(item *old_it, item *new_it, const uint32_t hv, const
      uint64_t cas_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/thread.c:936,1
    - Dst: ITEM_key
      Src: /src/memcached/thread.c:936,1
    - Dst: item_lock
      Src: /src/memcached/thread.c:937,1
    - Dst: do_item_unlink
      Src: /src/memcached/thread.c:938,1
    - Dst: item_unlock
      Src: /src/memcached/thread.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 940
    functionName: item_unlink
    functionSourceFile: /src/memcached/thread.c
    functionUses: 9
    functionsReached:
    - do_item_unlink
    - item_unlock
    - hash
    - ITEM_key
    - item_lock
    linkageType: ''
    returnType: void
    signature: void item_unlink(item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/thread.c:952,1
    - Dst: item_lock
      Src: /src/memcached/thread.c:953,1
    - Dst: do_add_delta
      Src: /src/memcached/thread.c:954,1
    - Dst: item_unlock
      Src: /src/memcached/thread.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - t
    - key
    - nkey
    - incr
    - delta
    - buf
    - cas
    argTypes:
    - LIBEVENT_THREAD*
    - char*
    - size_t
    - bool
    - int64_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 957
    functionName: add_delta
    functionSourceFile: /src/memcached/thread.c
    functionUses: 3
    functionsReached:
    - item_unlock
    - hash
    - do_add_delta
    - item_lock
    linkageType: ''
    returnType: enum delta_result_type
    signature: "enum delta_result_type add_delta(LIBEVENT_THREAD *t, const char *key,\n
      \                                const size_t nkey, bool incr,\n                                 const
      int64_t delta, char *buf,\n                                 uint64_t *cas)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/memcached/thread.c:966,1
    - Dst: ITEM_key
      Src: /src/memcached/thread.c:966,1
    - Dst: item_lock
      Src: /src/memcached/thread.c:967,1
    - Dst: do_store_item
      Src: /src/memcached/thread.c:968,1
    - Dst: item_unlock
      Src: /src/memcached/thread.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - item
    - comm
    - t
    - nbytes
    - cas
    - cas_in
    - cas_stale
    argTypes:
    - item*
    - int
    - LIBEVENT_THREAD*
    - int*
    - uint64_t*
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 962
    functionDepth: 4
    functionLinenumber: 962
    functionLinenumberEnd: 971
    functionName: store_item
    functionSourceFile: /src/memcached/thread.c
    functionUses: 6
    functionsReached:
    - do_store_item
    - item_unlock
    - hash
    - ITEM_key
    - item_lock
    linkageType: ''
    returnType: enum store_item_type
    signature: enum store_item_type store_item(item *item, int comm, LIBEVENT_THREAD
      *t, int *nbytes, uint64_t *cas, const uint64_t cas_in, bool cas_stale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    functionName: STATS_LOCK
    functionSourceFile: /src/memcached/thread.c
    functionUses: 30
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void STATS_LOCK(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 981
    functionName: STATS_UNLOCK
    functionSourceFile: /src/memcached/thread.c
    functionUses: 30
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void STATS_UNLOCK(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:986,1
    - Dst: memset
      Src: /src/memcached/thread.c:997,1
    - Dst: memset
      Src: /src/memcached/thread.c:999,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:1002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 1004
    functionName: threadlocal_stats_reset
    functionSourceFile: /src/memcached/thread.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - memset
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void threadlocal_stats_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 988
    functionName: X
    functionSourceFile: /src/memcached/thread.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/thread.c:1011,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:1014,1
    - Dst: CLEAR_LRU
      Src: /src/memcached/thread.c:1036,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:1043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct thread_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1045
    functionName: threadlocal_stats_aggregate
    functionSourceFile: /src/memcached/thread.c
    functionUses: 2
    functionsReached:
    - CLEAR_LRU
    - memset
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void threadlocal_stats_aggregate(struct thread_stats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1016
    functionName: X
    functionSourceFile: /src/memcached/thread.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1029
    functionName: X
    functionSourceFile: /src/memcached/thread.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/thread.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - stats
    - out
    argTypes:
    - struct thread_stats*
    - struct slab_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1057
    functionName: slab_stats_aggregate
    functionSourceFile: /src/memcached/thread.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void slab_stats_aggregate(struct thread_stats *stats, struct slab_stats
      *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1054
    functionName: X
    functionSourceFile: /src/memcached/thread.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/memcached/thread.c:1061,1
    - Dst: perror
      Src: /src/memcached/thread.c:1063,1
    - Dst: exit
      Src: /src/memcached/thread.c:1064,1
    - Dst: pipe
      Src: /src/memcached/thread.c:1068,1
    - Dst: perror
      Src: /src/memcached/thread.c:1069,1
    - Dst: exit
      Src: /src/memcached/thread.c:1070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tn
    argTypes:
    - struct thread_notify*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1076
    functionName: memcached_thread_notify_init
    functionSourceFile: /src/memcached/thread.c
    functionUses: 0
    functionsReached:
    - perror
    - eventfd
    - pipe
    - exit
    linkageType: ''
    returnType: void
    signature: void memcached_thread_notify_init(struct thread_notify *tn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/memcached/thread.c:1088,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/thread.c:1090,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/thread.c:1092,1
    - Dst: pthread_cond_init
      Src: /src/memcached/thread.c:1093,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:1112,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:1113,1
    - Dst: fprintf
      Src: /src/memcached/thread.c:1114,1
    - Dst: exit
      Src: /src/memcached/thread.c:1115,1
    - Dst: hashsize
      Src: /src/memcached/thread.c:1118,1
    - Dst: calloc
      Src: /src/memcached/thread.c:1121,1
    - Dst: perror
      Src: /src/memcached/thread.c:1123,1
    - Dst: exit
      Src: /src/memcached/thread.c:1124,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/thread.c:1127,1
    - Dst: calloc
      Src: /src/memcached/thread.c:1130,1
    - Dst: perror
      Src: /src/memcached/thread.c:1132,1
    - Dst: exit
      Src: /src/memcached/thread.c:1133,1
    - Dst: memcached_thread_notify_init
      Src: /src/memcached/thread.c:1137,1
    - Dst: memcached_thread_notify_init
      Src: /src/memcached/thread.c:1138,1
    - Dst: setup_thread
      Src: /src/memcached/thread.c:1143,1
    - Dst: create_worker
      Src: /src/memcached/thread.c:1150,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/thread.c:1154,1
    - Dst: wait_for_thread_registration
      Src: /src/memcached/thread.c:1155,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/thread.c:1156,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 2
    argNames:
    - nthreads
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1083
    functionDepth: 5
    functionLinenumber: 1083
    functionLinenumberEnd: 1157
    functionName: memcached_thread_init
    functionSourceFile: /src/memcached/thread.c
    functionUses: 1
    functionsReached:
    - fprintf
    - wait_for_thread_registration
    - pthread_mutex_unlock
    - setup_thread
    - pthread_mutex_lock
    - pthread_mutex_init
    - exit
    - perror
    - pthread_cond_init
    - hashsize
    - memcached_thread_notify_init
    - create_worker
    - calloc
    linkageType: ''
    returnType: void
    signature: void memcached_thread_init(int nthreads, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: P_DEBUG
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P_DEBUG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: WSTAT_L
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTAT_L(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: WSTAT_UL
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTAT_UL(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - stat
    - ','
    - amount
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: WSTAT_INCR
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTAT_INCR(t, stat, amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - stat
    - ','
    - amount
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: WSTAT_DECR
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTAT_DECR(t, stat, amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: STAT_L
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_L(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: STAT_UL
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_UL(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - stat
    - ','
    - amount
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: STAT_INCR
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_INCR(ctx, stat, amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - stat
    - ','
    - amount
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: STAT_DECR
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_DECR(ctx, stat, amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: NANOSECONDS
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NANOSECONDS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: MICROSECONDS
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MICROSECONDS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: PROXY_GET_THR_CTX
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROXY_GET_THR_CTX(L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: PROXY_GET_THR
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROXY_GET_THR(L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: PROXY_GET_CTX
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROXY_GET_CTX(L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 675
    functionName: mcp_is_flag_invalid
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcp_is_flag_invalid(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - L
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 774
    functionName: proxy_lua_ferror
    functionSourceFile: /src/memcached/proxy.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: proxy_lua_ferror(L, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: signal_handler
    functionSourceFile: /src/memcached/timedrun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signal_handler(int which)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/timedrun.c:25,1
    - Dst: sigaction
      Src: /src/memcached/timedrun.c:29,1
    - Dst: sigaction
      Src: /src/memcached/timedrun.c:30,1
    - Dst: sigaction
      Src: /src/memcached/timedrun.c:31,1
    - Dst: sigaction
      Src: /src/memcached/timedrun.c:32,1
    - Dst: sigaction
      Src: /src/memcached/timedrun.c:33,1
    - Dst: sigaction
      Src: /src/memcached/timedrun.c:34,1
    - Dst: waitpid
      Src: /src/memcached/timedrun.c:38,1
    - Dst: WIFEXITED
      Src: /src/memcached/timedrun.c:41,1
    - Dst: WEXITSTATUS
      Src: /src/memcached/timedrun.c:42,1
    - Dst: WTERMSIG
      Src: /src/memcached/timedrun.c:43,1
    - Dst: kill
      Src: /src/memcached/timedrun.c:51,1
    - Dst: perror
      Src: /src/memcached/timedrun.c:53,1
    - Dst: fprintf
      Src: /src/memcached/timedrun.c:62,1
    - Dst: kill
      Src: /src/memcached/timedrun.c:72,1
    - Dst: perror
      Src: /src/memcached/timedrun.c:74,1
    - Dst: alarm
      Src: /src/memcached/timedrun.c:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: wait_for_process
    functionSourceFile: /src/memcached/timedrun.c
    functionUses: 0
    functionsReached:
    - alarm
    - fprintf
    - kill
    - WIFEXITED
    - WTERMSIG
    - WEXITSTATUS
    - sigaction
    - waitpid
    - perror
    - memset
    linkageType: ''
    returnType: int
    signature: int wait_for_process(pid_t pid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/memcached/timedrun.c:86,1
    - Dst: perror
      Src: /src/memcached/timedrun.c:90,1
    - Dst: execvp
      Src: /src/memcached/timedrun.c:94,1
    - Dst: perror
      Src: /src/memcached/timedrun.c:95,1
    - Dst: wait_for_process
      Src: /src/memcached/timedrun.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 102
    functionName: spawn_and_wait
    functionSourceFile: /src/memcached/timedrun.c
    functionUses: 0
    functionsReached:
    - perror
    - fork
    - wait_for_process
    - execvp
    linkageType: ''
    returnType: int
    signature: int spawn_and_wait(char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/memcached/timedrun.c:105,1
    - Dst: exit
      Src: /src/memcached/timedrun.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: usage
    functionSourceFile: /src/memcached/timedrun.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/memcached/timedrun.c:113,1
    - Dst: atoi
      Src: /src/memcached/timedrun.c:115,1
    - Dst: assert
      Src: /src/memcached/timedrun.c:116,1
    - Dst: alarm
      Src: /src/memcached/timedrun.c:118,1
    - Dst: spawn_and_wait
      Src: /src/memcached/timedrun.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (naptime > 0 && naptime < 1800)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/memcached/timedrun.c
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/memcached/timedrun.c
    functionUses: 0
    functionsReached:
    - alarm
    - atoi
    - usage
    - assert
    - spawn_and_wait
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/memcached/sasl_defs.c:54,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:56,1
    - Dst: fopen
      Src: /src/memcached/sasl_defs.c:62,1
    - Dst: vperror
      Src: /src/memcached/sasl_defs.c:65,1
    - Dst: fgets
      Src: /src/memcached/sasl_defs.c:74,1
    - Dst: memcmp
      Src: /src/memcached/sasl_defs.c:75,1
    - Dst: memcmp
      Src: /src/memcached/sasl_defs.c:78,1
    - Dst: fclose
      Src: /src/memcached/sasl_defs.c:89,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:95,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 6
    argNames:
    - conn
    - context
    - user
    - pass
    - passlen
    - propctx
    argTypes:
    - sasl_conn_t*
    - void*
    - char*
    - char*
    - unsigned
    - struct propctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 99
    functionName: sasl_server_userdb_checkpass
    functionSourceFile: /src/memcached/sasl_defs.c
    functionUses: 0
    functionsReached:
    - fopen
    - fprintf
    - fclose
    - fgets
    - memcmp
    - strlen
    - vperror
    linkageType: ''
    returnType: int
    signature: "int sasl_server_userdb_checkpass(sasl_conn_t *conn,\n                                        void
      *context,\n                                        const char *user,\n                                        const
      char *pass,\n                                        unsigned passlen,\n                                        struct
      propctx *propctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/memcached/sasl_defs.c:105,1
    - Dst: access
      Src: /src/memcached/sasl_defs.c:110,1
    - Dst: access
      Src: /src/memcached/sasl_defs.c:117,1
    - Dst: access
      Src: /src/memcached/sasl_defs.c:120,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:130,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:132,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - context
    - path
    argTypes:
    - void*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 138
    functionName: sasl_getconf
    functionSourceFile: /src/memcached/sasl_defs.c
    functionUses: 0
    functionsReached:
    - getenv
    - fprintf
    - access
    linkageType: ''
    returnType: int
    signature: int sasl_getconf(void *context, const char **path)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - context
    - level
    - message
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 173
    functionName: sasl_log
    functionSourceFile: /src/memcached/sasl_defs.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sasl_log(void *context, int level, const char *message)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/memcached/sasl_defs.c:195,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:198,1
    - Dst: memset
      Src: /src/memcached/sasl_defs.c:207,1
    - Dst: gethostname
      Src: /src/memcached/sasl_defs.c:208,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:210,1
    - Dst: sasl_server_init
      Src: /src/memcached/sasl_defs.c:215,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:216,1
    - Dst: exit
      Src: /src/memcached/sasl_defs.c:217,1
    - Dst: fprintf
      Src: /src/memcached/sasl_defs.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 223
    functionName: init_sasl
    functionSourceFile: /src/memcached/sasl_defs.c
    functionUses: 0
    functionsReached:
    - fprintf
    - getenv
    - exit
    - gethostname
    - sasl_server_init
    - memset
    linkageType: ''
    returnType: void
    signature: void init_sasl(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: priv_str_to_set
      Src: /src/memcached/solaris_priv.c:13,1
    - Dst: perror
      Src: /src/memcached/solaris_priv.c:16,1
    - Dst: exit
      Src: /src/memcached/solaris_priv.c:17,1
    - Dst: priv_delset
      Src: /src/memcached/solaris_priv.c:20,1
    - Dst: priv_delset
      Src: /src/memcached/solaris_priv.c:21,1
    - Dst: priv_delset
      Src: /src/memcached/solaris_priv.c:22,1
    - Dst: priv_delset
      Src: /src/memcached/solaris_priv.c:23,1
    - Dst: priv_delset
      Src: /src/memcached/solaris_priv.c:24,1
    - Dst: setppriv
      Src: /src/memcached/solaris_priv.c:26,1
    - Dst: perror
      Src: /src/memcached/solaris_priv.c:27,1
    - Dst: exit
      Src: /src/memcached/solaris_priv.c:28,1
    - Dst: priv_emptyset
      Src: /src/memcached/solaris_priv.c:31,1
    - Dst: setppriv
      Src: /src/memcached/solaris_priv.c:33,1
    - Dst: perror
      Src: /src/memcached/solaris_priv.c:34,1
    - Dst: exit
      Src: /src/memcached/solaris_priv.c:35,1
    - Dst: setppriv
      Src: /src/memcached/solaris_priv.c:38,1
    - Dst: perror
      Src: /src/memcached/solaris_priv.c:39,1
    - Dst: exit
      Src: /src/memcached/solaris_priv.c:40,1
    - Dst: priv_freeset
      Src: /src/memcached/solaris_priv.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 44
    functionName: drop_privileges
    functionSourceFile: /src/memcached/solaris_priv.c
    functionUses: 0
    functionsReached:
    - priv_str_to_set
    - priv_emptyset
    - exit
    - setppriv
    - perror
    - priv_freeset
    - priv_delset
    linkageType: ''
    returnType: void
    signature: void drop_privileges(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: setup_privilege_violations_handler
    functionSourceFile: /src/memcached/solaris_priv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_privilege_violations_handler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: bipbuf_sizeof
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bipbuf_sizeof(const unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - bipbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: bipbuf_unused
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bipbuf_unused(const bipbuf_t* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - bipbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: bipbuf_size
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bipbuf_size(const bipbuf_t* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - bipbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: bipbuf_used
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bipbuf_used(const bipbuf_t* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - me
    - size
    argTypes:
    - bipbuf_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: bipbuf_init
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bipbuf_init(bipbuf_t* me, const unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/bipbuffer.c:51,1
    - Dst: bipbuf_sizeof
      Src: /src/memcached/bipbuffer.c:51,1
    - Dst: bipbuf_init
      Src: /src/memcached/bipbuffer.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: bipbuf_new
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 2
    functionsReached:
    - malloc
    - bipbuf_init
    - bipbuf_sizeof
    linkageType: ''
    returnType: bipbuf_t
    signature: bipbuf_t *bipbuf_new(const unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/memcached/bipbuffer.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - bipbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: bipbuf_free
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void bipbuf_free(bipbuf_t* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - bipbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: bipbuf_is_empty
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bipbuf_is_empty(const bipbuf_t* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - me
    argTypes:
    - bipbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: __check_for_switch_to_b
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __check_for_switch_to_b(bipbuf_t* me)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_unused
      Src: /src/memcached/bipbuffer.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - me
    - size
    argTypes:
    - bipbuf_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: bipbuf_request
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 2
    functionsReached:
    - bipbuf_unused
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *bipbuf_request(bipbuf_t* me, const int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_unused
      Src: /src/memcached/bipbuffer.c:93,1
    - Dst: __check_for_switch_to_b
      Src: /src/memcached/bipbuffer.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - me
    - size
    argTypes:
    - bipbuf_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: bipbuf_push
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 2
    functionsReached:
    - bipbuf_unused
    - __check_for_switch_to_b
    linkageType: ''
    returnType: int
    signature: int bipbuf_push(bipbuf_t* me, const int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_unused
      Src: /src/memcached/bipbuffer.c:112,1
    - Dst: memcpy
      Src: /src/memcached/bipbuffer.c:117,1
    - Dst: memcpy
      Src: /src/memcached/bipbuffer.c:122,1
    - Dst: __check_for_switch_to_b
      Src: /src/memcached/bipbuffer.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - me
    - data
    - size
    argTypes:
    - bipbuf_t*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: bipbuf_offer
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 2
    functionsReached:
    - bipbuf_unused
    - __check_for_switch_to_b
    - memcpy
    linkageType: ''
    returnType: int
    signature: int bipbuf_offer(bipbuf_t* me, const unsigned char *data, const int
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_is_empty
      Src: /src/memcached/bipbuffer.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - me
    - size
    argTypes:
    - bipbuf_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: bipbuf_peek
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 0
    functionsReached:
    - bipbuf_is_empty
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *bipbuf_peek(const bipbuf_t* me, const unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_is_empty
      Src: /src/memcached/bipbuffer.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - me
    - size
    argTypes:
    - bipbuf_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: bipbuf_peek_all
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 2
    functionsReached:
    - bipbuf_is_empty
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *bipbuf_peek_all(const bipbuf_t* me, unsigned int *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bipbuf_is_empty
      Src: /src/memcached/bipbuffer.c:153,1
    - Dst: __check_for_switch_to_b
      Src: /src/memcached/bipbuffer.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - me
    - size
    argTypes:
    - bipbuf_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 180
    functionName: bipbuf_poll
    functionSourceFile: /src/memcached/bipbuffer.c
    functionUses: 2
    functionsReached:
    - __check_for_switch_to_b
    - bipbuf_is_empty
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *bipbuf_poll(bipbuf_t* me, const unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:66,1
    - Dst: memset
      Src: /src/memcached/items.c:67,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: item_stats_reset
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - memset
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void item_stats_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - i
    - reclaimed
    - unfetched
    - checked
    argTypes:
    - int
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: do_item_stats_add_crawl
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void do_item_stats_add_crawl(const int i, const uint64_t reclaimed,\n
      \       const uint64_t unfetched, const uint64_t checked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:105,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: get_cas_id
    functionSourceFile: /src/memcached/items.c
    functionUses: 8
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_cas_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:112,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - new_cas
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: set_cas_id
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void set_cas_id(uint64_t new_cas)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: item_is_flushed
    functionSourceFile: /src/memcached/items.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int item_is_flushed(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: do_get_lru_size
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int do_get_lru_size(uint32_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - it
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: DEBUG_REFCNT
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_REFCNT(it,op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - it
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: DEBUG_REFCNT
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_REFCNT(it,op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - nkey
    - flags
    - nbytes
    - suffix
    - nsuffix
    argTypes:
    - uint8_t
    - client_flags_t
    - int
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: item_make_header
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t item_make_header(const uint8_t nkey, const client_flags_t flags,
      const int nbytes,\n                     char *suffix, uint8_t *nsuffix)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lru_pull_tail
      Src: /src/memcached/items.c:174,1
    - Dst: slabs_alloc
      Src: /src/memcached/items.c:176,1
    - Dst: lru_pull_tail
      Src: /src/memcached/items.c:182,1
    - Dst: lru_pull_tail
      Src: /src/memcached/items.c:184,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:195,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - ntotal
    - id
    argTypes:
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 201
    functionName: do_item_alloc_pull
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - slabs_alloc
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - lru_pull_tail
    linkageType: ''
    returnType: item
    signature: item *do_item_alloc_pull(const size_t ntotal, const unsigned int id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: slabs_clsid
      Src: /src/memcached/items.c:213,1
    - Dst: do_item_alloc_pull
      Src: /src/memcached/items.c:215,1
    - Dst: slabs_clsid
      Src: /src/memcached/items.c:226,1
    - Dst: do_item_alloc_pull
      Src: /src/memcached/items.c:227,1
    - Dst: slabs_mlock
      Src: /src/memcached/items.c:236,1
    - Dst: slabs_munlock
      Src: /src/memcached/items.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ch
    - bytes_remain
    argTypes:
    - item_chunk*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 247
    functionName: do_item_alloc_chunk
    functionSourceFile: /src/memcached/items.c
    functionUses: 4
    functionsReached:
    - do_item_alloc_pull
    - slabs_munlock
    - slabs_clsid
    - slabs_mlock
    linkageType: ''
    returnType: item_chunk
    signature: item_chunk *do_item_alloc_chunk(item_chunk *ch, const size_t bytes_remain)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: item_make_header
      Src: /src/memcached/items.c:258,1
    - Dst: slabs_clsid
      Src: /src/memcached/items.c:263,1
    - Dst: slabs_clsid
      Src: /src/memcached/items.c:287,1
    - Dst: do_item_alloc_pull
      Src: /src/memcached/items.c:288,1
    - Dst: do_item_alloc_pull
      Src: /src/memcached/items.c:293,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:297,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:299,1
    - Dst: assert
      Src: /src/memcached/items.c:303,1
    - Dst: DEBUG_REFCNT
      Src: /src/memcached/items.c:323,1
    - Dst: memcpy
      Src: /src/memcached/items.c:328,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:328,1
    - Dst: memcpy
      Src: /src/memcached/items.c:331,1
    - Dst: ITEM_suffix
      Src: /src/memcached/items.c:331,1
    - Dst: ITEM_schunk
      Src: /src/memcached/items.c:336,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 5
    argNames:
    - key
    - nkey
    - flags
    - exptime
    - nbytes
    argTypes:
    - char*
    - size_t
    - client_flags_t
    - rel_time_t
    - int
    assertStmts:
    - condition: (it->it_flags == 0 || it->it_flags == ITEM_CHUNKED)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 348
      start: 249
    functionDepth: 6
    functionLinenumber: 249
    functionLinenumberEnd: 348
    functionName: do_item_alloc
    functionSourceFile: /src/memcached/items.c
    functionUses: 4
    functionsReached:
    - ITEM_schunk
    - slabs_clsid
    - ITEM_suffix
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - item_make_header
    - do_item_alloc_pull
    - ITEM_key
    - assert
    - DEBUG_REFCNT
    - memcpy
    linkageType: ''
    returnType: item
    signature: "item *do_item_alloc(const char *key, const size_t nkey, const client_flags_t
      flags,\n                    const rel_time_t exptime, const int nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/items.c:352,1
    - Dst: assert
      Src: /src/memcached/items.c:353,1
    - Dst: assert
      Src: /src/memcached/items.c:354,1
    - Dst: assert
      Src: /src/memcached/items.c:355,1
    - Dst: ITEM_clsid
      Src: /src/memcached/items.c:358,1
    - Dst: DEBUG_REFCNT
      Src: /src/memcached/items.c:359,1
    - Dst: slabs_free
      Src: /src/memcached/items.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: ((it->it_flags & ITEM_LINKED) == 0)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/memcached/items.c
    - condition: (it->refcount == 0)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/memcached/items.c
    - condition: (it != tails[it->slabs_clsid])
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/memcached/items.c
    - condition: (it != heads[it->slabs_clsid])
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 361
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 361
    functionName: item_free
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - ITEM_clsid
    - assert
    - DEBUG_REFCNT
    - slabs_free
    linkageType: ''
    returnType: void
    signature: void item_free(item *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: item_make_header
      Src: /src/memcached/items.c:373,1
    - Dst: slabs_clsid
      Src: /src/memcached/items.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - nkey
    - flags
    - nbytes
    argTypes:
    - size_t
    - client_flags_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: item_size_ok
    functionSourceFile: /src/memcached/items.c
    functionUses: 2
    functionsReached:
    - item_make_header
    - slabs_clsid
    linkageType: ''
    returnType: bool
    signature: bool item_size_ok(const size_t nkey, const client_flags_t flags, const
      int nbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:385,1
    - Dst: hash
      Src: /src/memcached/items.c:386,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:386,1
    - Dst: assoc_insert
      Src: /src/memcached/items.c:387,1
    - Dst: STATS_LOCK
      Src: /src/memcached/items.c:396,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/items.c:400,1
    - Dst: item_stats_sizes_add
      Src: /src/memcached/items.c:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 405
    functionName: do_item_link_fixup
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - assoc_insert
    - ITEM_ntotal
    - item_stats_sizes_add
    - hash
    - STATS_LOCK
    - ITEM_key
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void do_item_link_fixup(item *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/items.c:409,1
    - Dst: assert
      Src: /src/memcached/items.c:413,1
    - Dst: assert
      Src: /src/memcached/items.c:414,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:423,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:425,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: ((it->it_flags & ITEM_SLABBED) == 0)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/memcached/items.c
    - condition: (it != *head)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/memcached/items.c
    - condition: ((*head && *tail) || (*head == 0 && *tail == 0))
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 432
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 432
    functionName: do_item_link_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - assert
    - ITEM_ntotal
    linkageType: ''
    returnType: void
    signature: void do_item_link_q(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:435,1
    - Dst: do_item_link_q
      Src: /src/memcached/items.c:436,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: item_link_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - do_item_link_q
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void item_link_q(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:441,1
    - Dst: do_item_link_q
      Src: /src/memcached/items.c:442,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: item_link_q_warm
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - do_item_link_q
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void item_link_q_warm(item *it)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/items.c:453,1
    - Dst: assert
      Src: /src/memcached/items.c:457,1
    - Dst: assert
      Src: /src/memcached/items.c:460,1
    - Dst: assert
      Src: /src/memcached/items.c:461,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:468,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:470,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: (it->prev == 0)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/memcached/items.c
    - condition: (it->prev != it)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/memcached/items.c
    - condition: (it->next != it)
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/memcached/items.c
    - condition: (it->next == 0)
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 477
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 477
    functionName: do_item_unlink_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - assert
    - ITEM_ntotal
    linkageType: ''
    returnType: void
    signature: void do_item_unlink_q(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:480,1
    - Dst: do_item_unlink_q
      Src: /src/memcached/items.c:481,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: item_unlink_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - do_item_unlink_q
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void item_unlink_q(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_ITEM_LINK
      Src: /src/memcached/items.c:486,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:486,1
    - Dst: assert
      Src: /src/memcached/items.c:487,1
    - Dst: STATS_LOCK
      Src: /src/memcached/items.c:491,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:492,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/items.c:495,1
    - Dst: ITEM_set_cas
      Src: /src/memcached/items.c:498,1
    - Dst: assoc_insert
      Src: /src/memcached/items.c:499,1
    - Dst: item_link_q
      Src: /src/memcached/items.c:500,1
    - Dst: refcount_incr
      Src: /src/memcached/items.c:501,1
    - Dst: item_stats_sizes_add
      Src: /src/memcached/items.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - it
    - hv
    - cas
    argTypes:
    - item*
    - uint32_t
    - uint64_t
    assertStmts:
    - condition: ((it->it_flags & (ITEM_LINKED|ITEM_SLABBED)) == 0)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: do_item_link
    functionSourceFile: /src/memcached/items.c
    functionUses: 2
    functionsReached:
    - ITEM_set_cas
    - assoc_insert
    - MEMCACHED_ITEM_LINK
    - refcount_incr
    - item_link_q
    - item_stats_sizes_add
    - ITEM_key
    - assert
    - STATS_LOCK
    - ITEM_ntotal
    - STATS_UNLOCK
    linkageType: ''
    returnType: int
    signature: int do_item_link(item *it, const uint32_t hv, const uint64_t cas)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_ITEM_UNLINK
      Src: /src/memcached/items.c:508,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:508,1
    - Dst: STATS_LOCK
      Src: /src/memcached/items.c:511,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:512,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/items.c:514,1
    - Dst: item_stats_sizes_remove
      Src: /src/memcached/items.c:515,1
    - Dst: assoc_delete
      Src: /src/memcached/items.c:516,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:516,1
    - Dst: item_unlink_q
      Src: /src/memcached/items.c:517,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - it
    - hv
    argTypes:
    - item*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 520
    functionName: do_item_unlink
    functionSourceFile: /src/memcached/items.c
    functionUses: 6
    functionsReached:
    - item_stats_sizes_remove
    - assoc_delete
    - MEMCACHED_ITEM_UNLINK
    - item_unlink_q
    - ITEM_key
    - STATS_LOCK
    - do_item_remove
    - ITEM_ntotal
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void do_item_unlink(item *it, const uint32_t hv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_ITEM_UNLINK
      Src: /src/memcached/items.c:524,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:524,1
    - Dst: STATS_LOCK
      Src: /src/memcached/items.c:527,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:528,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/items.c:530,1
    - Dst: item_stats_sizes_remove
      Src: /src/memcached/items.c:531,1
    - Dst: assoc_delete
      Src: /src/memcached/items.c:532,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:532,1
    - Dst: do_item_unlink_q
      Src: /src/memcached/items.c:533,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - it
    - hv
    argTypes:
    - item*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 536
    functionName: do_item_unlink_nolock
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - item_stats_sizes_remove
    - assoc_delete
    - MEMCACHED_ITEM_UNLINK
    - ITEM_key
    - do_item_unlink_q
    - STATS_LOCK
    - do_item_remove
    - ITEM_ntotal
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void do_item_unlink_nolock(item *it, const uint32_t hv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_ITEM_REMOVE
      Src: /src/memcached/items.c:539,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:539,1
    - Dst: assert
      Src: /src/memcached/items.c:540,1
    - Dst: assert
      Src: /src/memcached/items.c:541,1
    - Dst: refcount_decr
      Src: /src/memcached/items.c:543,1
    - Dst: item_free
      Src: /src/memcached/items.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: (it->refcount > 0)
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/memcached/items.c
    - condition: ((it->it_flags & ITEM_SLABBED) == 0)
      pos:
        line_end: 539
        line_start: 539
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 5
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: do_item_remove
    functionSourceFile: /src/memcached/items.c
    functionUses: 14
    functionsReached:
    - MEMCACHED_ITEM_REMOVE
    - item_free
    - refcount_decr
    - assert
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void do_item_remove(item *it)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_ITEM_UPDATE
      Src: /src/memcached/items.c:550,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:550,1
    - Dst: assert
      Src: /src/memcached/items.c:554,1
    - Dst: ITEM_lruid
      Src: /src/memcached/items.c:556,1
    - Dst: item_unlink_q
      Src: /src/memcached/items.c:558,1
    - Dst: ITEM_clsid
      Src: /src/memcached/items.c:559,1
    - Dst: item_link_q_warm
      Src: /src/memcached/items.c:562,1
    - Dst: assert
      Src: /src/memcached/items.c:568,1
    - Dst: item_unlink_q
      Src: /src/memcached/items.c:572,1
    - Dst: item_link_q
      Src: /src/memcached/items.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: ((it->it_flags & ITEM_SLABBED) == 0)
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/memcached/items.c
    - condition: ((it->it_flags & ITEM_SLABBED) == 0)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 576
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 576
    functionName: do_item_update
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - ITEM_clsid
    - item_link_q
    - item_unlink_q
    - item_link_q_warm
    - MEMCACHED_ITEM_UPDATE
    - assert
    - ITEM_lruid
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void do_item_update(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEMCACHED_ITEM_REPLACE
      Src: /src/memcached/items.c:579,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:579,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:580,1
    - Dst: assert
      Src: /src/memcached/items.c:581,1
    - Dst: do_item_unlink
      Src: /src/memcached/items.c:583,1
    - Dst: do_item_link
      Src: /src/memcached/items.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - it
    - new_it
    - hv
    - cas
    argTypes:
    - item*
    - item*
    - uint32_t
    - uint64_t
    assertStmts:
    - condition: ((it->it_flags & ITEM_SLABBED) == 0)
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 585
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 585
    functionName: do_item_replace
    functionSourceFile: /src/memcached/items.c
    functionUses: 3
    functionsReached:
    - do_item_link
    - do_item_unlink
    - assert
    - ITEM_key
    - MEMCACHED_ITEM_REPLACE
    linkageType: ''
    returnType: int
    signature: int do_item_replace(item *it, item *new_it, const uint32_t hv, const
      uint64_t cas)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:598,1
    - Dst: hash
      Src: /src/memcached/items.c:605,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:605,1
    - Dst: item_trylock
      Src: /src/memcached/items.c:608,1
    - Dst: STORAGE_delete
      Src: /src/memcached/items.c:617,1
    - Dst: do_item_unlink_nolock
      Src: /src/memcached/items.c:619,1
    - Dst: hash
      Src: /src/memcached/items.c:619,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:619,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/items.c:621,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/items.c:624,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 587
    functionDepth: 4
    functionLinenumber: 587
    functionLinenumberEnd: 630
    functionName: item_flush_expired
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - item_trylock_unlock
    - STORAGE_delete
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - hash
    - do_item_unlink_nolock
    - item_trylock
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void item_flush_expired(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:651,1
    - Dst: malloc
      Src: /src/memcached/items.c:654,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:656,1
    - Dst: assert
      Src: /src/memcached/items.c:662,1
    - Dst: strncpy
      Src: /src/memcached/items.c:669,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:669,1
    - Dst: snprintf
      Src: /src/memcached/items.c:671,1
    - Dst: memcpy
      Src: /src/memcached/items.c:677,1
    - Dst: memcpy
      Src: /src/memcached/items.c:683,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:687,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - slabs_clsid
    - limit
    - bytes
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int*
    assertStmts:
    - condition: (it->nkey <= KEY_MAX_LENGTH)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 689
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 689
    functionName: item_cachedump
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - malloc
    - pthread_mutex_unlock
    - snprintf
    - pthread_mutex_lock
    - strncpy
    - assert
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *item_cachedump(const unsigned int slabs_clsid, const unsigned
      int limit, unsigned int *bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:701,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:703,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:707,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - am
    argTypes:
    - item_stats_automove*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 723
    functionName: fill_item_stats_automove
    functionSourceFile: /src/memcached/items.c
    functionUses: 4
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void fill_item_stats_automove(item_stats_automove *am)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/items.c:727,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:734,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:747,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:750,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:752,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:755,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:758,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:760,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:762,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:764,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:766,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:769,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:771,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:773,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:775,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:777,1
    - Dst: lru_total_bumps_dropped
      Src: /src/memcached/items.c:778,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 780
    functionName: item_stats_totals
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - lru_total_bumps_dropped
    - APPEND_STAT
    - memset
    linkageType: ''
    returnType: void
    signature: void item_stats_totals(ADD_STAT add_stats, void *c)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: threadlocal_stats_aggregate
      Src: /src/memcached/items.c:784,1
    - Dst: memset
      Src: /src/memcached/items.c:788,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:802,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:844,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:848,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:850,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:851,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:852,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:854,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:856,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:857,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:859,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:860,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:861,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:863,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:865,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:867,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:869,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:871,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:873,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:875,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:878,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:881,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:883,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:885,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:888,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:890,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:892,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:894,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:896,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:899,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:902,1
    - Dst: APPEND_NUM_FMT_STAT
      Src: /src/memcached/items.c:905,1
    - Dst: add_stats
      Src: /src/memcached/items.c:912,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 93
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 913
    functionName: item_stats
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - add_stats
    - threadlocal_stats_aggregate
    - APPEND_NUM_FMT_STAT
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - memset
    linkageType: ''
    returnType: void
    signature: void item_stats(ADD_STAT add_stats, void *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 920
    functionName: item_stats_sizes_status
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool item_stats_sizes_status(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/items.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 927
    functionName: item_stats_sizes_init
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void item_stats_sizes_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 936
    functionName: item_stats_sizes_add
    functionSourceFile: /src/memcached/items.c
    functionUses: 2
    functionsReached:
    - ITEM_ntotal
    linkageType: ''
    returnType: void
    signature: void item_stats_sizes_add(item *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_ntotal
      Src: /src/memcached/items.c:944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 948
    functionName: item_stats_sizes_remove
    functionSourceFile: /src/memcached/items.c
    functionUses: 2
    functionsReached:
    - ITEM_ntotal
    linkageType: ''
    returnType: void
    signature: void item_stats_sizes_remove(item *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/memcached/items.c:962,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:963,1
    - Dst: APPEND_STAT
      Src: /src/memcached/items.c:967,1
    - Dst: add_stats
      Src: /src/memcached/items.c:970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - add_stats
    - c
    argTypes:
    - ADD_STAT
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 971
    functionName: item_stats_sizes
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - add_stats
    - APPEND_STAT
    - snprintf
    linkageType: ''
    returnType: void
    signature: void item_stats_sizes(ADD_STAT add_stats, void *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assoc_find
      Src: /src/memcached/items.c:975,1
    - Dst: refcount_incr
      Src: /src/memcached/items.c:977,1
    - Dst: item_is_flushed
      Src: /src/memcached/items.c:983,1
    - Dst: do_item_unlink
      Src: /src/memcached/items.c:984,1
    - Dst: STORAGE_delete
      Src: /src/memcached/items.c:985,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:986,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:988,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:990,1
    - Dst: do_item_unlink
      Src: /src/memcached/items.c:993,1
    - Dst: STORAGE_delete
      Src: /src/memcached/items.c:994,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:995,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:997,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:999,1
    - Dst: do_item_bump
      Src: /src/memcached/items.c:1003,1
    - Dst: DEBUG_REFCNT
      Src: /src/memcached/items.c:1005,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1010,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1012,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1015,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1017,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1020,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/items.c:1023,1
    - Dst: ITEM_clsid
      Src: /src/memcached/items.c:1024,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 5
    argNames:
    - key
    - nkey
    - hv
    - t
    - do_update
    argTypes:
    - char*
    - size_t
    - uint32_t
    - LIBEVENT_THREAD*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 974
    functionDepth: 6
    functionLinenumber: 974
    functionLinenumberEnd: 1027
    functionName: do_item_get
    functionSourceFile: /src/memcached/items.c
    functionUses: 3
    functionsReached:
    - do_item_bump
    - fprintf
    - ITEM_clsid
    - STORAGE_delete
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - do_item_unlink
    - LOGGER_LOG
    - refcount_incr
    - do_item_remove
    - assoc_find
    - DEBUG_REFCNT
    - item_is_flushed
    linkageType: ''
    returnType: item
    signature: item *do_item_get(const char *key, const size_t nkey, const uint32_t
      hv, LIBEVENT_THREAD *t, const bool do_update)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_lruid
      Src: /src/memcached/items.c:1045,1
    - Dst: lru_bump_async
      Src: /src/memcached/items.c:1047,1
    - Dst: do_item_update
      Src: /src/memcached/items.c:1055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - t
    - it
    - hv
    argTypes:
    - LIBEVENT_THREAD*
    - item*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1032
    functionDepth: 4
    functionLinenumber: 1032
    functionLinenumberEnd: 1057
    functionName: do_item_bump
    functionSourceFile: /src/memcached/items.c
    functionUses: 2
    functionsReached:
    - ITEM_lruid
    - lru_bump_async
    - do_item_update
    linkageType: ''
    returnType: void
    signature: void do_item_bump(LIBEVENT_THREAD *t, item *it, const uint32_t hv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_item_get
      Src: /src/memcached/items.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - key
    - nkey
    - exptime
    - hv
    - t
    argTypes:
    - char*
    - size_t
    - uint32_t
    - uint32_t
    - LIBEVENT_THREAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 7
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: do_item_touch
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - do_item_get
    linkageType: ''
    returnType: item
    signature: "item *do_item_touch(const char *key, size_t nkey, uint32_t exptime,\n
      \                   const uint32_t hv, LIBEVENT_THREAD *t)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1089,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1098,1
    - Dst: hash
      Src: /src/memcached/items.c:1104,1
    - Dst: ITEM_key
      Src: /src/memcached/items.c:1104,1
    - Dst: item_trylock
      Src: /src/memcached/items.c:1107,1
    - Dst: refcount_incr
      Src: /src/memcached/items.c:1110,1
    - Dst: STORAGE_delete
      Src: /src/memcached/items.c:1121,1
    - Dst: do_item_unlink_nolock
      Src: /src/memcached/items.c:1122,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/items.c:1123,1
    - Dst: item_is_flushed
      Src: /src/memcached/items.c:1130,1
    - Dst: do_item_unlink_nolock
      Src: /src/memcached/items.c:1136,1
    - Dst: STORAGE_delete
      Src: /src/memcached/items.c:1137,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:1139,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/items.c:1140,1
    - Dst: do_item_unlink_q
      Src: /src/memcached/items.c:1162,1
    - Dst: do_item_link_q
      Src: /src/memcached/items.c:1163,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:1164,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/items.c:1165,1
    - Dst: do_item_unlink_q
      Src: /src/memcached/items.c:1170,1
    - Dst: do_item_unlink_q
      Src: /src/memcached/items.c:1177,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/items.c:1203,1
    - Dst: STORAGE_delete
      Src: /src/memcached/items.c:1204,1
    - Dst: do_item_unlink_nolock
      Src: /src/memcached/items.c:1205,1
    - Dst: slabs_reassign
      Src: /src/memcached/items.c:1208,1
    - Dst: do_item_unlink_q
      Src: /src/memcached/items.c:1219,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1231,1
    - Dst: ITEM_clsid
      Src: /src/memcached/items.c:1235,1
    - Dst: item_link_q
      Src: /src/memcached/items.c:1237,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:1240,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/items.c:1241,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 130
    argCount: 6
    argNames:
    - orig_id
    - cur_lru
    - total_bytes
    - flags
    - max_age
    - ret_it
    argTypes:
    - int
    - int
    - uint64_t
    - uint8_t
    - rel_time_t
    - struct lru_pull_tail_return*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1072
    functionDepth: 6
    functionLinenumber: 1072
    functionLinenumberEnd: 1246
    functionName: lru_pull_tail
    functionSourceFile: /src/memcached/items.c
    functionUses: 3
    functionsReached:
    - do_item_unlink_nolock
    - item_trylock_unlock
    - slabs_reassign
    - ITEM_clsid
    - STORAGE_delete
    - pthread_mutex_unlock
    - do_item_link_q
    - pthread_mutex_lock
    - LOGGER_LOG
    - item_link_q
    - item_is_flushed
    - hash
    - do_item_unlink_q
    - refcount_incr
    - do_item_remove
    - item_trylock
    - ITEM_key
    linkageType: ''
    returnType: int
    signature: "int lru_pull_tail(const int orig_id, const int cur_lru,\n        const
      uint64_t total_bytes, const uint8_t flags, const rel_time_t max_age,\n        struct
      lru_pull_tail_return *ret_it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1251,1
    - Dst: assert
      Src: /src/memcached/items.c:1252,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - lru_bump_buf*
    assertStmts:
    - condition: (b != bump_buf_head)
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 1261
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1261
    functionName: lru_bump_buf_link_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - assert
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void lru_bump_buf_link_q(lru_bump_buf *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/items.c:1264,1
    - Dst: bipbuf_new
      Src: /src/memcached/items.c:1269,1
    - Dst: free
      Src: /src/memcached/items.c:1271,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/items.c:1275,1
    - Dst: lru_bump_buf_link_q
      Src: /src/memcached/items.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1279
    functionName: item_lru_bump_buf_create
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - free
    - lru_bump_buf_link_q
    - bipbuf_new
    - pthread_mutex_init
    - calloc
    linkageType: ''
    returnType: void
    signature: void *item_lru_bump_buf_create(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refcount_incr
      Src: /src/memcached/items.c:1283,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1284,1
    - Dst: bipbuf_request
      Src: /src/memcached/items.c:1285,1
    - Dst: bipbuf_push
      Src: /src/memcached/items.c:1289,1
    - Dst: refcount_decr
      Src: /src/memcached/items.c:1298,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - b
    - it
    - hv
    argTypes:
    - lru_bump_buf*
    - item*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1302
    functionName: lru_bump_async
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - bipbuf_request
    - bipbuf_push
    - refcount_decr
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - refcount_incr
    linkageType: ''
    returnType: bool
    signature: bool lru_bump_async(lru_bump_buf *b, item *it, uint32_t hv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1316,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1318,1
    - Dst: bipbuf_peek_all
      Src: /src/memcached/items.c:1319,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1320,1
    - Dst: item_lock
      Src: /src/memcached/items.c:1329,1
    - Dst: do_item_update
      Src: /src/memcached/items.c:1330,1
    - Dst: do_item_remove
      Src: /src/memcached/items.c:1331,1
    - Dst: item_unlock
      Src: /src/memcached/items.c:1332,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1337,1
    - Dst: bipbuf_poll
      Src: /src/memcached/items.c:1338,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1339,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1310
    functionDepth: 6
    functionLinenumber: 1310
    functionLinenumberEnd: 1343
    functionName: lru_maintainer_bumps
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - bipbuf_poll
    - pthread_mutex_unlock
    - item_lock
    - pthread_mutex_lock
    - item_unlock
    - bipbuf_peek_all
    - do_item_remove
    - do_item_update
    linkageType: ''
    returnType: bool
    signature: bool lru_maintainer_bumps(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1348,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1350,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1352,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1356
    functionName: lru_total_bumps_dropped
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t lru_total_bumps_dropped(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: slabs_available_chunks
      Src: /src/memcached/items.c:1373,1
    - Dst: lru_pull_tail
      Src: /src/memcached/items.c:1378,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1391,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1397,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1403,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1405,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1407,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1409,1
    - Dst: lru_pull_tail
      Src: /src/memcached/items.c:1415,1
    - Dst: lru_pull_tail
      Src: /src/memcached/items.c:1416,1
    - Dst: lru_pull_tail
      Src: /src/memcached/items.c:1420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - slabs_clsid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1366
    functionDepth: 7
    functionLinenumber: 1366
    functionLinenumberEnd: 1427
    functionName: lru_maintainer_juggle
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - slabs_available_chunks
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - lru_pull_tail
    linkageType: ''
    returnType: int
    signature: int lru_maintainer_juggle(const int slabs_clsid)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/items.c:1448,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1458,1
    - Dst: GET_LRU
      Src: /src/memcached/items.c:1490,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/items.c:1504,1
    - Dst: CLEAR_LRU
      Src: /src/memcached/items.c:1505,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1516,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1519,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1523,1
    - Dst: lru_crawler_start
      Src: /src/memcached/items.c:1533,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - cdata
    - l
    argTypes:
    - struct crawler_expired_data*
    - logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1535
    functionName: lru_maintainer_crawler_check
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - LOGGER_LOG
    - pthread_mutex_lock
    - GET_LRU
    - CLEAR_LRU
    - memset
    - lru_crawler_start
    linkageType: ''
    returnType: void
    signature: void lru_maintainer_crawler_check(struct crawler_expired_data *cdata,
      logger *l)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/items.c:1550,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1552,1
    - Dst: abort
      Src: /src/memcached/items.c:1553,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/items.c:1555,1
    - Dst: logger_create
      Src: /src/memcached/items.c:1557,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1559,1
    - Dst: abort
      Src: /src/memcached/items.c:1560,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1563,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1565,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1567,1
    - Dst: usleep
      Src: /src/memcached/items.c:1569,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1570,1
    - Dst: STATS_LOCK
      Src: /src/memcached/items.c:1575,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/items.c:1577,1
    - Dst: lru_maintainer_juggle
      Src: /src/memcached/items.c:1590,1
    - Dst: lru_maintainer_bumps
      Src: /src/memcached/items.c:1611,1
    - Dst: lru_maintainer_crawler_check
      Src: /src/memcached/items.c:1617,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1621,1
    - Dst: free
      Src: /src/memcached/items.c:1623,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1625,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1542
    functionDepth: 8
    functionLinenumber: 1542
    functionLinenumberEnd: 1628
    functionName: lru_maintainer_thread
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - free
    - fprintf
    - lru_maintainer_crawler_check
    - lru_maintainer_bumps
    - pthread_mutex_unlock
    - usleep
    - pthread_mutex_lock
    - pthread_mutex_init
    - logger_create
    - abort
    - STATS_LOCK
    - lru_maintainer_juggle
    - calloc
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void *lru_maintainer_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1632,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1635,1
    - Dst: pthread_join
      Src: /src/memcached/items.c:1636,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1637,1
    - Dst: strerror
      Src: /src/memcached/items.c:1637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1642
    functionName: stop_lru_maintainer_thread
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_join
    - fprintf
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - strerror
    linkageType: ''
    returnType: int
    signature: int stop_lru_maintainer_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1647,1
    - Dst: pthread_create
      Src: /src/memcached/items.c:1650,1
    - Dst: fprintf
      Src: /src/memcached/items.c:1652,1
    - Dst: strerror
      Src: /src/memcached/items.c:1653,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1654,1
    - Dst: thread_setname
      Src: /src/memcached/items.c:1657,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1661
    functionName: start_lru_maintainer_thread
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_mutex_unlock
    - pthread_create
    - pthread_mutex_lock
    - thread_setname
    - strerror
    linkageType: ''
    returnType: int
    signature: int start_lru_maintainer_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/items.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1666
    functionName: lru_maintainer_pause
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void lru_maintainer_pause(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/items.c:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1670
    functionName: lru_maintainer_resume
    functionSourceFile: /src/memcached/items.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void lru_maintainer_resume(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/items.c:1675,1
    - Dst: assert
      Src: /src/memcached/items.c:1676,1
    - Dst: assert
      Src: /src/memcached/items.c:1681,1
    - Dst: assert
      Src: /src/memcached/items.c:1682,1
    - Dst: assert
      Src: /src/memcached/items.c:1686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: (it->it_flags == 1)
      pos:
        line_end: 1674
        line_start: 1674
        source_file: /src/memcached/items.c
    - condition: (it != *tail)
      pos:
        line_end: 1680
        line_start: 1680
        source_file: /src/memcached/items.c
    - condition: (it->prev->next == 0)
      pos:
        line_end: 1685
        line_start: 1685
        source_file: /src/memcached/items.c
    - condition: (it->nbytes == 0)
      pos:
        line_end: 1675
        line_start: 1675
        source_file: /src/memcached/items.c
    - condition: ((*head && *tail) || (*head == 0 && *tail == 0))
      pos:
        line_end: 1681
        line_start: 1681
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 1692
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1692
    functionName: do_item_linktail_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void do_item_linktail_q(item *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/items.c:1700,1
    - Dst: assert
      Src: /src/memcached/items.c:1704,1
    - Dst: assert
      Src: /src/memcached/items.c:1707,1
    - Dst: assert
      Src: /src/memcached/items.c:1708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: (it->prev == 0)
      pos:
        line_end: 1699
        line_start: 1699
        source_file: /src/memcached/items.c
    - condition: (it->next != it)
      pos:
        line_end: 1706
        line_start: 1706
        source_file: /src/memcached/items.c
    - condition: (it->prev != it)
      pos:
        line_end: 1707
        line_start: 1707
        source_file: /src/memcached/items.c
    - condition: (it->next == 0)
      pos:
        line_end: 1703
        line_start: 1703
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 1713
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1713
    functionName: do_item_unlinktail_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void do_item_unlinktail_q(item *it)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/items.c:1719,1
    - Dst: assert
      Src: /src/memcached/items.c:1720,1
    - Dst: assert
      Src: /src/memcached/items.c:1726,1
    - Dst: assert
      Src: /src/memcached/items.c:1729,1
    - Dst: assert
      Src: /src/memcached/items.c:1737,1
    - Dst: assert
      Src: /src/memcached/items.c:1747,1
    - Dst: assert
      Src: /src/memcached/items.c:1749,1
    - Dst: assert
      Src: /src/memcached/items.c:1765,1
    - Dst: assert
      Src: /src/memcached/items.c:1766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - it
    argTypes:
    - item*
    assertStmts:
    - condition: (it->it_flags == 1)
      pos:
        line_end: 1718
        line_start: 1718
        source_file: /src/memcached/items.c
    - condition: (it->prev != it)
      pos:
        line_end: 1736
        line_start: 1736
        source_file: /src/memcached/items.c
    - condition: (it->nbytes == 0)
      pos:
        line_end: 1719
        line_start: 1719
        source_file: /src/memcached/items.c
    - condition: (*head == it)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/memcached/items.c
    - condition: (it->next->prev == it)
      pos:
        line_end: 1728
        line_start: 1728
        source_file: /src/memcached/items.c
    - condition: (it->next != it)
      pos:
        line_end: 1746
        line_start: 1746
        source_file: /src/memcached/items.c
    - condition: (it->prev->next == it)
      pos:
        line_end: 1748
        line_start: 1748
        source_file: /src/memcached/items.c
    - condition: (it->next != it)
      pos:
        line_end: 1764
        line_start: 1764
        source_file: /src/memcached/items.c
    - condition: (it->prev != it)
      pos:
        line_end: 1765
        line_start: 1765
        source_file: /src/memcached/items.c
    constantsTouched: []
    func_position:
      end: 1769
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1769
    functionName: do_item_crawl_q
    functionSourceFile: /src/memcached/items.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: item
    signature: item *do_item_crawl_q(item *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/tls.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: SSL_LOCK
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void SSL_LOCK(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/tls.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: SSL_UNLOCK
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void SSL_UNLOCK(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/tls.c:43,1
    - Dst: IS_TCP
      Src: /src/memcached/tls.c:43,1
    - Dst: fprintf
      Src: /src/memcached/tls.c:47,1
    - Dst: SSL_LOCK
      Src: /src/memcached/tls.c:52,1
    - Dst: SSL_new
      Src: /src/memcached/tls.c:53,1
    - Dst: SSL_UNLOCK
      Src: /src/memcached/tls.c:54,1
    - Dst: fprintf
      Src: /src/memcached/tls.c:57,1
    - Dst: ERR_clear_error
      Src: /src/memcached/tls.c:60,1
    - Dst: SSL_set_fd
      Src: /src/memcached/tls.c:63,1
    - Dst: SSL_set_verify
      Src: /src/memcached/tls.c:67,1
    - Dst: SSL_set_verify
      Src: /src/memcached/tls.c:70,1
    - Dst: ERR_clear_error
      Src: /src/memcached/tls.c:73,1
    - Dst: SSL_accept
      Src: /src/memcached/tls.c:74,1
    - Dst: SSL_get_error
      Src: /src/memcached/tls.c:76,1
    - Dst: ERR_clear_error
      Src: /src/memcached/tls.c:79,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/tls.c:85,1
    - Dst: strerror
      Src: /src/memcached/tls.c:86,1
    - Dst: print_ssl_error
      Src: /src/memcached/tls.c:91,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/tls.c:92,1
    - Dst: ERR_clear_error
      Src: /src/memcached/tls.c:95,1
    - Dst: SSL_free
      Src: /src/memcached/tls.c:96,1
    - Dst: STATS_LOCK
      Src: /src/memcached/tls.c:97,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/tls.c:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - c
    - sfd
    - fail
    argTypes:
    - conn*
    - int
    - bool*
    assertStmts:
    - condition: (IS_TCP(c->transport) && settings.ssl_enabled)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/memcached/tls.c
    constantsTouched: []
    func_position:
      end: 107
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 107
    functionName: ssl_accept
    functionSourceFile: /src/memcached/tls.c
    functionUses: 1
    functionsReached:
    - IS_TCP
    - fprintf
    - SSL_get_error
    - SSL_set_verify
    - SSL_set_fd
    - SSL_new
    - LOGGER_LOG
    - SSL_free
    - strerror
    - assert
    - print_ssl_error
    - SSL_UNLOCK
    - ERR_clear_error
    - SSL_LOCK
    - SSL_accept
    - STATS_LOCK
    - STATS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void *ssl_accept(conn *c, int sfd, bool *fail)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_peer_certificate
      Src: /src/memcached/tls.c:131,1
    - Dst: X509_get_subject_name
      Src: /src/memcached/tls.c:135,1
    - Dst: X509_free
      Src: /src/memcached/tls.c:137,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/memcached/tls.c:141,1
    - Dst: X509_free
      Src: /src/memcached/tls.c:143,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/memcached/tls.c:146,1
    - Dst: X509_NAME_get_entry
      Src: /src/memcached/tls.c:146,1
    - Dst: X509_free
      Src: /src/memcached/tls.c:149,1
    - Dst: ASN1_STRING_length
      Src: /src/memcached/tls.c:152,1
    - Dst: X509_free
      Src: /src/memcached/tls.c:153,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/memcached/tls.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - c
    - len
    argTypes:
    - conn*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 155
    functionName: ssl_get_peer_cn
    functionSourceFile: /src/memcached/tls.c
    functionUses: 1
    functionsReached:
    - X509_NAME_ENTRY_get_data
    - X509_free
    - X509_get_subject_name
    - ASN1_STRING_get0_data
    - SSL_get_peer_certificate
    - ASN1_STRING_length
    - X509_NAME_get_entry
    - X509_NAME_get_index_by_NID
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ssl_get_peer_cn(conn *c, int *len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/tls.c:162,1
    - Dst: SSL_read
      Src: /src/memcached/tls.c:167,1
    - Dst: SSL_get_error
      Src: /src/memcached/tls.c:169,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/tls.c:177,1
    - Dst: strerror
      Src: /src/memcached/tls.c:178,1
    - Dst: print_ssl_error
      Src: /src/memcached/tls.c:183,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/tls.c:184,1
    - Dst: STATS_LOCK
      Src: /src/memcached/tls.c:186,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/tls.c:188,1
    - Dst: ERR_clear_error
      Src: /src/memcached/tls.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/memcached/tls.c
    constantsTouched: []
    func_position:
      end: 194
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 194
    functionName: ssl_read
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - SSL_get_error
    - SSL_read
    - LOGGER_LOG
    - strerror
    - ERR_clear_error
    - assert
    - print_ssl_error
    - STATS_LOCK
    - STATS_UNLOCK
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ssl_read(conn *c, void *buf, size_t count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/tls.c:201,1
    - Dst: SSL_write
      Src: /src/memcached/tls.c:203,1
    - Dst: SSL_get_error
      Src: /src/memcached/tls.c:205,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/tls.c:213,1
    - Dst: strerror
      Src: /src/memcached/tls.c:214,1
    - Dst: print_ssl_error
      Src: /src/memcached/tls.c:219,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/tls.c:220,1
    - Dst: STATS_LOCK
      Src: /src/memcached/tls.c:222,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/tls.c:224,1
    - Dst: ERR_clear_error
      Src: /src/memcached/tls.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - c
    - buf
    - count
    argTypes:
    - conn*
    - void*
    - size_t
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/memcached/tls.c
    constantsTouched: []
    func_position:
      end: 229
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 229
    functionName: ssl_write
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - SSL_get_error
    - LOGGER_LOG
    - strerror
    - ERR_clear_error
    - assert
    - print_ssl_error
    - STATS_LOCK
    - SSL_write
    - STATS_UNLOCK
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ssl_write(conn *c, void *buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/tls.c:235,1
    - Dst: assert
      Src: /src/memcached/tls.c:242,1
    - Dst: assert
      Src: /src/memcached/tls.c:249,1
    - Dst: pthread_equal
      Src: /src/memcached/tls.c:249,1
    - Dst: pthread_self
      Src: /src/memcached/tls.c:249,1
    - Dst: memcpy
      Src: /src/memcached/tls.c:256,1
    - Dst: ssl_write
      Src: /src/memcached/tls.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - c
    - msg
    - flags
    argTypes:
    - conn*
    - struct msghdr*
    - int
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/memcached/tls.c
    - condition: (c->ssl_wbuf)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/memcached/tls.c
    - condition: (pthread_equal(c->thread->thread_id, pthread_self()) != 0)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/memcached/tls.c
    constantsTouched: []
    func_position:
      end: 266
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 266
    functionName: ssl_sendmsg
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_equal
    - assert
    - ssl_write
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ssl_sendmsg(conn *c, struct msghdr *msg, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error
      Src: /src/memcached/tls.c:273,1
    - Dst: ERR_error_string_n
      Src: /src/memcached/tls.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buff
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: print_ssl_error
    functionSourceFile: /src/memcached/tls.c
    functionUses: 3
    functionsReached:
    - ERR_error_string_n
    - ERR_get_error
    linkageType: ''
    returnType: void
    signature: void print_ssl_error(char *buff, size_t len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/tls.c:287,1
    - Dst: snprintf
      Src: /src/memcached/tls.c:298,1
    - Dst: malloc
      Src: /src/memcached/tls.c:303,1
    - Dst: free
      Src: /src/memcached/tls.c:305,1
    - Dst: bzero
      Src: /src/memcached/tls.c:309,1
    - Dst: SSL_LOCK
      Src: /src/memcached/tls.c:312,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/memcached/tls.c:313,1
    - Dst: print_ssl_error
      Src: /src/memcached/tls.c:315,1
    - Dst: snprintf
      Src: /src/memcached/tls.c:316,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/memcached/tls.c:318,1
    - Dst: print_ssl_error
      Src: /src/memcached/tls.c:320,1
    - Dst: snprintf
      Src: /src/memcached/tls.c:321,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/memcached/tls.c:323,1
    - Dst: print_ssl_error
      Src: /src/memcached/tls.c:324,1
    - Dst: snprintf
      Src: /src/memcached/tls.c:325,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/memcached/tls.c:328,1
    - Dst: print_ssl_error
      Src: /src/memcached/tls.c:330,1
    - Dst: snprintf
      Src: /src/memcached/tls.c:331,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/memcached/tls.c:335,1
    - Dst: SSL_load_client_CA_file
      Src: /src/memcached/tls.c:336,1
    - Dst: SSL_UNLOCK
      Src: /src/memcached/tls.c:342,1
    - Dst: free
      Src: /src/memcached/tls.c:343,1
    - Dst: free
      Src: /src/memcached/tls.c:346,1
    - Dst: snprintf
      Src: /src/memcached/tls.c:350,1
    - Dst: ERR_print_errors_fp
      Src: /src/memcached/tls.c:352,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 355
    functionName: load_server_certificates
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - bzero
    - SSL_CTX_set_client_CA_list
    - snprintf
    - ERR_print_errors_fp
    - SSL_CTX_use_certificate_chain_file
    - SSL_CTX_check_private_key
    - print_ssl_error
    - SSL_load_client_CA_file
    - SSL_UNLOCK
    - SSL_LOCK
    - SSL_CTX_use_PrivateKey_file
    - SSL_CTX_load_verify_locations
    linkageType: ''
    returnType: bool
    signature: bool load_server_certificates(char **errmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/memcached/tls.c:359,1
    - Dst: SSL_free
      Src: /src/memcached/tls.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl_in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: ssl_conn_close
    functionSourceFile: /src/memcached/tls.c
    functionUses: 2
    functionsReached:
    - SSL_free
    - SSL_shutdown
    linkageType: ''
    returnType: void
    signature: void ssl_conn_close(void *ssl_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_pending
      Src: /src/memcached/tls.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl_in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: ssl_pending
    functionSourceFile: /src/memcached/tls.c
    functionUses: 1
    functionsReached:
    - SSL_pending
    linkageType: ''
    returnType: int
    signature: int ssl_pending(void *ssl_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_info_callback
      Src: /src/memcached/tls.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - ssl_in
    argTypes:
    - conn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 377
    functionName: ssl_init_conn
    functionSourceFile: /src/memcached/tls.c
    functionUses: 1
    functionsReached:
    - SSL_set_info_callback
    linkageType: ''
    returnType: void
    signature: void ssl_init_conn(conn *c, void *ssl_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: ssl_init_settings
    functionSourceFile: /src/memcached/tls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_init_settings(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/tls.c:399,1
    - Dst: OPENSSL_init_ssl
      Src: /src/memcached/tls.c:401,1
    - Dst: SSL_CTX_new
      Src: /src/memcached/tls.c:405,1
    - Dst: TLS_server_method
      Src: /src/memcached/tls.c:405,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/memcached/tls.c:407,1
    - Dst: load_server_certificates
      Src: /src/memcached/tls.c:411,1
    - Dst: fprintf
      Src: /src/memcached/tls.c:412,1
    - Dst: free
      Src: /src/memcached/tls.c:413,1
    - Dst: exit
      Src: /src/memcached/tls.c:414,1
    - Dst: SSL_CTX_set_verify
      Src: /src/memcached/tls.c:418,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/memcached/tls.c:419,1
    - Dst: fprintf
      Src: /src/memcached/tls.c:421,1
    - Dst: exit
      Src: /src/memcached/tls.c:423,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/memcached/tls.c:428,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/memcached/tls.c:429,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/memcached/tls.c:430,1
    - Dst: strlen
      Src: /src/memcached/tls.c:432,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/memcached/tls.c:434,1
    - Dst: SSL_CTX_set_options
      Src: /src/memcached/tls.c:440,1
    - Dst: fprintf
      Src: /src/memcached/tls.c:442,1
    - Dst: exit
      Src: /src/memcached/tls.c:443,1
    - Dst: SSL_CTX_set_options
      Src: /src/memcached/tls.c:450,1
    - Dst: SSL_CTX_set_mode
      Src: /src/memcached/tls.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (settings.ssl_enabled)
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/memcached/tls.c
    constantsTouched: []
    func_position:
      end: 457
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 457
    functionName: ssl_init
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_options
    - free
    - fprintf
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_set_verify
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_sess_set_new_cb
    - TLS_server_method
    - exit
    - strlen
    - OPENSSL_init_ssl
    - assert
    - load_server_certificates
    - SSL_CTX_set_session_id_context
    - SSL_CTX_set_cipher_list
    - SSL_CTX_new
    - SSL_CTX_set_mode
    linkageType: ''
    returnType: int
    signature: int ssl_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_before
      Src: /src/memcached/tls.c:470,1
    - Dst: fprintf
      Src: /src/memcached/tls.c:471,1
    - Dst: SSL_get_fd
      Src: /src/memcached/tls.c:472,1
    - Dst: SSL_set_shutdown
      Src: /src/memcached/tls.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 477
    functionName: ssl_callback
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SSL_get_fd
    - SSL_set_shutdown
    - SSL_in_before
    linkageType: ''
    returnType: void
    signature: void ssl_callback(const SSL *s, int where, int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/memcached/tls.c:485,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/tls.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: ssl_new_session_callback
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached:
    - STATS_UNLOCK
    - STATS_LOCK
    linkageType: ''
    returnType: int
    signature: int ssl_new_session_callback(SSL *s, SSL_SESSION *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_server_certificates
      Src: /src/memcached/tls.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: refresh_certs
    functionSourceFile: /src/memcached/tls.c
    functionUses: 2
    functionsReached:
    - load_server_certificates
    linkageType: ''
    returnType: bool
    signature: bool refresh_certs(char **errmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/memcached/tls.c:497,1
    - Dst: printf
      Src: /src/memcached/tls.c:500,1
    - Dst: printf
      Src: /src/memcached/tls.c:503,1
    - Dst: printf
      Src: /src/memcached/tls.c:507,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:511,1
    - Dst: printf
      Src: /src/memcached/tls.c:513,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:514,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:514,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:515,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:515,1
    - Dst: printf
      Src: /src/memcached/tls.c:517,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:518,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:518,1
    - Dst: ssl_proto_text
      Src: /src/memcached/tls.c:519,1
    - Dst: verify_default
      Src: /src/memcached/tls.c:521,1
    - Dst: verify_default
      Src: /src/memcached/tls.c:522,1
    - Dst: verify_default
      Src: /src/memcached/tls.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 524
    functionName: ssl_help
    functionSourceFile: /src/memcached/tls.c
    functionUses: 1
    functionsReached:
    - printf
    - verify_default
    - ssl_proto_text
    linkageType: ''
    returnType: void
    signature: void ssl_help(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 541
    functionName: ssl_proto_text
    functionSourceFile: /src/memcached/tls.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ssl_proto_text(int version)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - verify
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 567
    functionName: ssl_set_verify_mode
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ssl_set_verify_mode(int verify)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 589
    functionName: ssl_set_min_version
    functionSourceFile: /src/memcached/tls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ssl_set_min_version(int version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/md5.c:169,1
    - Dst: SET
      Src: /src/memcached/md5.c:207,1
    - Dst: SET
      Src: /src/memcached/md5.c:208,1
    - Dst: SET
      Src: /src/memcached/md5.c:209,1
    - Dst: SET
      Src: /src/memcached/md5.c:210,1
    - Dst: SET
      Src: /src/memcached/md5.c:211,1
    - Dst: SET
      Src: /src/memcached/md5.c:212,1
    - Dst: SET
      Src: /src/memcached/md5.c:213,1
    - Dst: SET
      Src: /src/memcached/md5.c:214,1
    - Dst: SET
      Src: /src/memcached/md5.c:215,1
    - Dst: SET
      Src: /src/memcached/md5.c:216,1
    - Dst: SET
      Src: /src/memcached/md5.c:217,1
    - Dst: SET
      Src: /src/memcached/md5.c:218,1
    - Dst: SET
      Src: /src/memcached/md5.c:219,1
    - Dst: SET
      Src: /src/memcached/md5.c:220,1
    - Dst: SET
      Src: /src/memcached/md5.c:221,1
    - Dst: SET
      Src: /src/memcached/md5.c:222,1
    - Dst: SET
      Src: /src/memcached/md5.c:233,1
    - Dst: SET
      Src: /src/memcached/md5.c:234,1
    - Dst: SET
      Src: /src/memcached/md5.c:235,1
    - Dst: SET
      Src: /src/memcached/md5.c:236,1
    - Dst: SET
      Src: /src/memcached/md5.c:237,1
    - Dst: SET
      Src: /src/memcached/md5.c:238,1
    - Dst: SET
      Src: /src/memcached/md5.c:239,1
    - Dst: SET
      Src: /src/memcached/md5.c:240,1
    - Dst: SET
      Src: /src/memcached/md5.c:241,1
    - Dst: SET
      Src: /src/memcached/md5.c:242,1
    - Dst: SET
      Src: /src/memcached/md5.c:243,1
    - Dst: SET
      Src: /src/memcached/md5.c:244,1
    - Dst: SET
      Src: /src/memcached/md5.c:245,1
    - Dst: SET
      Src: /src/memcached/md5.c:246,1
    - Dst: SET
      Src: /src/memcached/md5.c:247,1
    - Dst: SET
      Src: /src/memcached/md5.c:248,1
    - Dst: SET
      Src: /src/memcached/md5.c:259,1
    - Dst: SET
      Src: /src/memcached/md5.c:260,1
    - Dst: SET
      Src: /src/memcached/md5.c:261,1
    - Dst: SET
      Src: /src/memcached/md5.c:262,1
    - Dst: SET
      Src: /src/memcached/md5.c:263,1
    - Dst: SET
      Src: /src/memcached/md5.c:264,1
    - Dst: SET
      Src: /src/memcached/md5.c:265,1
    - Dst: SET
      Src: /src/memcached/md5.c:266,1
    - Dst: SET
      Src: /src/memcached/md5.c:267,1
    - Dst: SET
      Src: /src/memcached/md5.c:268,1
    - Dst: SET
      Src: /src/memcached/md5.c:269,1
    - Dst: SET
      Src: /src/memcached/md5.c:270,1
    - Dst: SET
      Src: /src/memcached/md5.c:271,1
    - Dst: SET
      Src: /src/memcached/md5.c:272,1
    - Dst: SET
      Src: /src/memcached/md5.c:273,1
    - Dst: SET
      Src: /src/memcached/md5.c:274,1
    - Dst: SET
      Src: /src/memcached/md5.c:285,1
    - Dst: SET
      Src: /src/memcached/md5.c:286,1
    - Dst: SET
      Src: /src/memcached/md5.c:287,1
    - Dst: SET
      Src: /src/memcached/md5.c:288,1
    - Dst: SET
      Src: /src/memcached/md5.c:289,1
    - Dst: SET
      Src: /src/memcached/md5.c:290,1
    - Dst: SET
      Src: /src/memcached/md5.c:291,1
    - Dst: SET
      Src: /src/memcached/md5.c:292,1
    - Dst: SET
      Src: /src/memcached/md5.c:293,1
    - Dst: SET
      Src: /src/memcached/md5.c:294,1
    - Dst: SET
      Src: /src/memcached/md5.c:295,1
    - Dst: SET
      Src: /src/memcached/md5.c:296,1
    - Dst: SET
      Src: /src/memcached/md5.c:297,1
    - Dst: SET
      Src: /src/memcached/md5.c:298,1
    - Dst: SET
      Src: /src/memcached/md5.c:299,1
    - Dst: SET
      Src: /src/memcached/md5.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 83
    argCount: 2
    argNames:
    - pms
    - data
    argTypes:
    - md5_state_t*
    - md5_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 310
    functionName: md5_process
    functionSourceFile: /src/memcached/md5.c
    functionUses: 0
    functionsReached:
    - SET
    - memcpy
    linkageType: ''
    returnType: void
    signature: void md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: ROTATE_LEFT
    functionSourceFile: /src/memcached/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_LEFT(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: F
    functionSourceFile: /src/memcached/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - Ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: SET
    functionSourceFile: /src/memcached/md5.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(a, b, c, d, k, s, Ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: G
    functionSourceFile: /src/memcached/md5.c
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - Ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: SET
    functionSourceFile: /src/memcached/md5.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(a, b, c, d, k, s, Ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: H
    functionSourceFile: /src/memcached/md5.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - Ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: SET
    functionSourceFile: /src/memcached/md5.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(a, b, c, d, k, s, Ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: I
    functionSourceFile: /src/memcached/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - Ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: SET
    functionSourceFile: /src/memcached/md5.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(a, b, c, d, k, s, Ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pms
    argTypes:
    - md5_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 320
    functionName: md5_init
    functionSourceFile: /src/memcached/md5.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void md5_init(md5_state_t *pms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/md5.c:343,1
    - Dst: md5_process
      Src: /src/memcached/md5.c:348,1
    - Dst: md5_process
      Src: /src/memcached/md5.c:353,1
    - Dst: memcpy
      Src: /src/memcached/md5.c:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - pms
    - data
    - nbytes
    argTypes:
    - md5_state_t*
    - md5_byte_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 358
    functionName: md5_append
    functionSourceFile: /src/memcached/md5.c
    functionUses: 2
    functionsReached:
    - md5_process
    - memcpy
    linkageType: ''
    returnType: void
    signature: void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_append
      Src: /src/memcached/md5.c:376,1
    - Dst: md5_append
      Src: /src/memcached/md5.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pms
    - digest
    argTypes:
    - md5_state_t*
    - md5_byte_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 381
    functionName: md5_finish
    functionSourceFile: /src/memcached/md5.c
    functionUses: 2
    functionsReached:
    - md5_append
    linkageType: ''
    returnType: void
    signature: void md5_finish(md5_state_t *pms, md5_byte_t digest[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ssl_pending
    functionSourceFile: /src/memcached/tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_pending(ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - sfd
    - ','
    - fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ssl_accept
    functionSourceFile: /src/memcached/tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssl_accept(c, sfd, fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: MEMCACHED_ASSOC_DELETE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ASSOC_DELETE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: MEMCACHED_ASSOC_FIND_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ASSOC_FIND_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: MEMCACHED_ASSOC_INSERT_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ASSOC_INSERT_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: MEMCACHED_COMMAND_ADD_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_ADD_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: MEMCACHED_COMMAND_APPEND_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_APPEND_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: MEMCACHED_COMMAND_CAS_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_CAS_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: MEMCACHED_COMMAND_DECR_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_DECR_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: MEMCACHED_COMMAND_DELETE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_DELETE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MEMCACHED_COMMAND_GET_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_GET_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MEMCACHED_COMMAND_TOUCH_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_TOUCH_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: MEMCACHED_COMMAND_INCR_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_INCR_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: MEMCACHED_COMMAND_PREPEND_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_PREPEND_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: MEMCACHED_COMMAND_REPLACE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_REPLACE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: MEMCACHED_COMMAND_SET_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_COMMAND_SET_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: MEMCACHED_CONN_ALLOCATE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_CONN_ALLOCATE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: MEMCACHED_CONN_CREATE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_CONN_CREATE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MEMCACHED_CONN_DESTROY_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_CONN_DESTROY_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: MEMCACHED_CONN_DISPATCH_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_CONN_DISPATCH_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MEMCACHED_CONN_RELEASE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_CONN_RELEASE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MEMCACHED_ITEM_LINK_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ITEM_LINK_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MEMCACHED_ITEM_REMOVE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ITEM_REMOVE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: MEMCACHED_ITEM_REPLACE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ITEM_REPLACE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MEMCACHED_ITEM_UNLINK_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ITEM_UNLINK_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MEMCACHED_ITEM_UPDATE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_ITEM_UPDATE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MEMCACHED_PROCESS_COMMAND_END_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_PROCESS_COMMAND_END_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MEMCACHED_PROCESS_COMMAND_START_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_PROCESS_COMMAND_START_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MEMCACHED_SLABS_ALLOCATE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_SLABS_ALLOCATE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: MEMCACHED_SLABS_ALLOCATE_FAILED_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_SLABS_ALLOCATE_FAILED_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: MEMCACHED_SLABS_FREE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_SLABS_FREE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: MEMCACHED_SLABS_SLABCLASS_ALLOCATE_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_SLABS_SLABCLASS_ALLOCATE_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED_ENABLED
    functionSourceFile: /src/memcached/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED_ENABLED()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/memcached/daemon.c:48,1
    - Dst: _exit
      Src: /src/memcached/daemon.c:54,1
    - Dst: setsid
      Src: /src/memcached/daemon.c:57,1
    - Dst: chdir
      Src: /src/memcached/daemon.c:61,1
    - Dst: perror
      Src: /src/memcached/daemon.c:62,1
    - Dst: open
      Src: /src/memcached/daemon.c:67,1
    - Dst: dup2
      Src: /src/memcached/daemon.c:68,1
    - Dst: perror
      Src: /src/memcached/daemon.c:69,1
    - Dst: dup2
      Src: /src/memcached/daemon.c:72,1
    - Dst: perror
      Src: /src/memcached/daemon.c:73,1
    - Dst: dup2
      Src: /src/memcached/daemon.c:76,1
    - Dst: perror
      Src: /src/memcached/daemon.c:77,1
    - Dst: close
      Src: /src/memcached/daemon.c:81,1
    - Dst: perror
      Src: /src/memcached/daemon.c:82,1
    - Dst: close
      Src: /src/memcached/daemon.c:89,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - nochdir
    - noclose
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 91
    functionName: daemonize
    functionSourceFile: /src/memcached/daemon.c
    functionUses: 0
    functionsReached:
    - fork
    - setsid
    - open
    - dup2
    - chdir
    - close
    - _exit
    - perror
    linkageType: ''
    returnType: int
    signature: int daemonize(int nochdir, int noclose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sidethread_conn_close
      Src: /src/memcached/crawler.c:132,1
    - Dst: free
      Src: /src/memcached/crawler.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - crawler_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 6
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: lru_crawler_close_client
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - sidethread_conn_close
    - free
    linkageType: ''
    returnType: void
    signature: void lru_crawler_close_client(crawler_client_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redispatch_conn
      Src: /src/memcached/crawler.c:140,1
    - Dst: free
      Src: /src/memcached/crawler.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - crawler_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: lru_crawler_release_client
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - redispatch_conn
    - free
    linkageType: ''
    returnType: void
    signature: void lru_crawler_release_client(crawler_client_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/memcached/crawler.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - crawler_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: lru_crawler_expand_buf
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int lru_crawler_expand_buf(crawler_client_t *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/crawler.c:164,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/crawler.c:169,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:175,1
    - Dst: memset
      Src: /src/memcached/crawler.c:176,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - cm
    - data
    argTypes:
    - crawler_module_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 183
    functionName: crawler_expired_init
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - pthread_mutex_init
    - memset
    - calloc
    linkageType: ''
    returnType: int
    signature: int crawler_expired_init(crawler_module_t *cm, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:187,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cm
    - slab_cls
    argTypes:
    - crawler_module_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: crawler_expired_doneclass
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void crawler_expired_doneclass(crawler_module_t *cm, int slab_cls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:195,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:198,1
    - Dst: free
      Src: /src/memcached/crawler.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cm
    argTypes:
    - crawler_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: crawler_expired_finalize
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - free
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void crawler_expired_finalize(crawler_module_t *cm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:210,1
    - Dst: item_is_flushed
      Src: /src/memcached/crawler.c:212,1
    - Dst: storage_validate_item
      Src: /src/memcached/crawler.c:216,1
    - Dst: ITEM_key
      Src: /src/memcached/crawler.c:230,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:231,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:234,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:236,1
    - Dst: STORAGE_delete
      Src: /src/memcached/crawler.c:242,1
    - Dst: do_item_unlink_nolock
      Src: /src/memcached/crawler.c:244,1
    - Dst: do_item_remove
      Src: /src/memcached/crawler.c:245,1
    - Dst: refcount_decr
      Src: /src/memcached/crawler.c:248,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:261,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - cm
    - search
    - hv
    - i
    argTypes:
    - crawler_module_t*
    - item*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 262
    functionName: crawler_expired_eval
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - fprintf
    - storage_validate_item
    - STORAGE_delete
    - refcount_decr
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - item_is_flushed
    - do_item_unlink_nolock
    - do_item_remove
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void crawler_expired_eval(crawler_module_t *cm, item *search, uint32_t
      hv, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cm
    - data
    argTypes:
    - crawler_module_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: crawler_metadump_init
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int crawler_metadump_init(crawler_module_t *cm, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: KADD
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KADD(p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: KSP
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSP(p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: item_is_flushed
      Src: /src/memcached/crawler.c:279,1
    - Dst: storage_validate_item
      Src: /src/memcached/crawler.c:283,1
    - Dst: refcount_decr
      Src: /src/memcached/crawler.c:293,1
    - Dst: FLAGS_CONV
      Src: /src/memcached/crawler.c:297,1
    - Dst: assert
      Src: /src/memcached/crawler.c:298,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:305,1
    - Dst: uriencode_p
      Src: /src/memcached/crawler.c:306,1
    - Dst: ITEM_key
      Src: /src/memcached/crawler.c:306,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:307,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:309,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:311,1
    - Dst: itoa_64
      Src: /src/memcached/crawler.c:313,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:314,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:317,1
    - Dst: itoa_u64
      Src: /src/memcached/crawler.c:318,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:319,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:321,1
    - Dst: itoa_u64
      Src: /src/memcached/crawler.c:322,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/crawler.c:322,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:323,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:326,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:328,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:331,1
    - Dst: itoa_u32
      Src: /src/memcached/crawler.c:332,1
    - Dst: ITEM_clsid
      Src: /src/memcached/crawler.c:332,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:333,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:335,1
    - Dst: itoa_u64
      Src: /src/memcached/crawler.c:336,1
    - Dst: ITEM_ntotal
      Src: /src/memcached/crawler.c:336,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:337,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:339,1
    - Dst: itoa_u64
      Src: /src/memcached/crawler.c:340,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:341,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:347,1
    - Dst: ITEM_data
      Src: /src/memcached/crawler.c:347,1
    - Dst: ITEM_data
      Src: /src/memcached/crawler.c:350,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:353,1
    - Dst: itoa_u32
      Src: /src/memcached/crawler.c:354,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:355,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:357,1
    - Dst: itoa_u32
      Src: /src/memcached/crawler.c:358,1
    - Dst: KSP
      Src: /src/memcached/crawler.c:359,1
    - Dst: KADD
      Src: /src/memcached/crawler.c:363,1
    - Dst: refcount_decr
      Src: /src/memcached/crawler.c:365,1
    - Dst: assert
      Src: /src/memcached/crawler.c:366,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 4
    argNames:
    - cm
    - it
    - hv
    - i
    argTypes:
    - crawler_module_t*
    - item*
    - uint32_t
    - int
    assertStmts:
    - condition: (it->nkey * 3 < LRU_CRAWLER_MINBUFSPACE/2)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/memcached/crawler.c
    - condition: (p - start < LRU_CRAWLER_MINBUFSPACE-1)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/memcached/crawler.c
    constantsTouched: []
    func_position:
      end: 368
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 368
    functionName: crawler_metadump_eval
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - ITEM_ntotal
    - itoa_u64
    - ITEM_clsid
    - storage_validate_item
    - ITEM_data
    - refcount_decr
    - KSP
    - ITEM_key
    - KADD
    - assert
    - itoa_u32
    - ITEM_get_cas
    - itoa_64
    - uriencode_p
    - FLAGS_CONV
    - item_is_flushed
    - memcpy
    linkageType: ''
    returnType: void
    signature: void crawler_metadump_eval(crawler_module_t *cm, item *it, uint32_t
      hv, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lru_crawler_write
      Src: /src/memcached/crawler.c:376,1
    - Dst: strlen
      Src: /src/memcached/crawler.c:380,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:381,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - cm
    argTypes:
    - crawler_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: crawler_metadump_finalize
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - lru_crawler_write
    - strlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: void crawler_metadump_finalize(crawler_module_t *cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cm
    - data
    argTypes:
    - crawler_module_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: crawler_mgdump_init
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int crawler_mgdump_init(crawler_module_t *cm, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: item_is_flushed
      Src: /src/memcached/crawler.c:397,1
    - Dst: refcount_decr
      Src: /src/memcached/crawler.c:401,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:407,1
    - Dst: base64_encode
      Src: /src/memcached/crawler.c:410,1
    - Dst: ITEM_key
      Src: /src/memcached/crawler.c:410,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:411,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:414,1
    - Dst: ITEM_key
      Src: /src/memcached/crawler.c:414,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:416,1
    - Dst: refcount_decr
      Src: /src/memcached/crawler.c:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - cm
    - it
    - hv
    - i
    argTypes:
    - crawler_module_t*
    - item*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 423
    functionName: crawler_mgdump_eval
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - refcount_decr
    - base64_encode
    - item_is_flushed
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void crawler_mgdump_eval(crawler_module_t *cm, item *it, uint32_t hv,
      int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lru_crawler_write
      Src: /src/memcached/crawler.c:428,1
    - Dst: strlen
      Src: /src/memcached/crawler.c:432,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:433,1
    - Dst: memcpy
      Src: /src/memcached/crawler.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - cm
    argTypes:
    - crawler_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 441
    functionName: crawler_mgdump_finalize
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - lru_crawler_write
    - strlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: void crawler_mgdump_finalize(crawler_module_t *cm)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/memcached/crawler.c:455,1
    - Dst: lru_crawler_close_client
      Src: /src/memcached/crawler.c:459,1
    - Dst: read
      Src: /src/memcached/crawler.c:468,1
    - Dst: lru_crawler_close_client
      Src: /src/memcached/crawler.c:470,1
    - Dst: lru_crawler_close_client
      Src: /src/memcached/crawler.c:477,1
    - Dst: write
      Src: /src/memcached/crawler.c:481,1
    - Dst: lru_crawler_close_client
      Src: /src/memcached/crawler.c:484,1
    - Dst: lru_crawler_close_client
      Src: /src/memcached/crawler.c:488,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - c
    argTypes:
    - crawler_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 444
    functionDepth: 7
    functionLinenumber: 444
    functionLinenumberEnd: 499
    functionName: lru_crawler_write
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 2
    functionsReached:
    - write
    - lru_crawler_close_client
    - poll
    - read
    linkageType: ''
    returnType: int
    signature: int lru_crawler_write(crawler_client_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_item_unlinktail_q
      Src: /src/memcached/crawler.c:504,1
    - Dst: do_item_stats_add_crawl
      Src: /src/memcached/crawler.c:505,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:507,1
    - Dst: mod::doneclass
      Src: /src/memcached/crawler.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 510
    functionName: lru_crawler_class_done
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - mod::doneclass
    - do_item_stats_add_crawl
    - pthread_mutex_unlock
    - do_item_unlinktail_q
    linkageType: ''
    returnType: void
    signature: void lru_crawler_class_done(int i)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assoc_get_iterator
      Src: /src/memcached/crawler.c:517,1
    - Dst: assoc_iterate
      Src: /src/memcached/crawler.c:531,1
    - Dst: lru_crawler_write
      Src: /src/memcached/crawler.c:537,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:551,1
    - Dst: usleep
      Src: /src/memcached/crawler.c:552,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:553,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:557,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:558,1
    - Dst: refcount_incr
      Src: /src/memcached/crawler.c:564,1
    - Dst: refcount_decr
      Src: /src/memcached/crawler.c:565,1
    - Dst: lru_crawler_expand_buf
      Src: /src/memcached/crawler.c:575,1
    - Dst: mod::eval
      Src: /src/memcached/crawler.c:583,1
    - Dst: assoc_iterate_final
      Src: /src/memcached/crawler.c:589,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 514
    functionDepth: 8
    functionLinenumber: 514
    functionLinenumberEnd: 591
    functionName: item_crawl_hash
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - assoc_iterate
    - refcount_decr
    - pthread_mutex_unlock
    - usleep
    - assoc_get_iterator
    - pthread_mutex_lock
    - lru_crawler_write
    - refcount_incr
    - lru_crawler_expand_buf
    - mod::eval
    - assoc_iterate_final
    linkageType: ''
    returnType: void
    signature: void item_crawl_hash(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:597,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/crawler.c:598,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:601,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/crawler.c:603,1
    - Dst: item_crawl_hash
      Src: /src/memcached/crawler.c:606,1
    - Dst: lru_crawler_write
      Src: /src/memcached/crawler.c:621,1
    - Dst: lru_crawler_class_done
      Src: /src/memcached/crawler.c:623,1
    - Dst: lru_crawler_class_done
      Src: /src/memcached/crawler.c:628,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:631,1
    - Dst: do_item_crawl_q
      Src: /src/memcached/crawler.c:632,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:636,1
    - Dst: lru_crawler_class_done
      Src: /src/memcached/crawler.c:637,1
    - Dst: hash
      Src: /src/memcached/crawler.c:640,1
    - Dst: ITEM_key
      Src: /src/memcached/crawler.c:640,1
    - Dst: item_trylock
      Src: /src/memcached/crawler.c:644,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:645,1
    - Dst: refcount_incr
      Src: /src/memcached/crawler.c:649,1
    - Dst: refcount_decr
      Src: /src/memcached/crawler.c:650,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/crawler.c:652,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:653,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:662,1
    - Dst: mod::eval
      Src: /src/memcached/crawler.c:665,1
    - Dst: item_trylock_unlock
      Src: /src/memcached/crawler.c:668,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:670,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:674,1
    - Dst: usleep
      Src: /src/memcached/crawler.c:675,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:676,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:680,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:681,1
    - Dst: mod::finalize
      Src: /src/memcached/crawler.c:689,1
    - Dst: lru_crawler_write
      Src: /src/memcached/crawler.c:691,1
    - Dst: lru_crawler_release_client
      Src: /src/memcached/crawler.c:695,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:701,1
    - Dst: STATS_LOCK
      Src: /src/memcached/crawler.c:703,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/crawler.c:705,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:707,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:709,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 93
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 593
    functionDepth: 9
    functionLinenumber: 593
    functionLinenumberEnd: 713
    functionName: item_crawler_thread
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 2
    functionsReached:
    - item_trylock_unlock
    - lru_crawler_release_client
    - refcount_incr
    - STATS_LOCK
    - item_trylock
    - refcount_decr
    - usleep
    - lru_crawler_write
    - pthread_cond_wait
    - hash
    - STATS_UNLOCK
    - pthread_cond_signal
    - pthread_mutex_lock
    - do_item_crawl_q
    - mod::finalize
    - fprintf
    - pthread_mutex_unlock
    - item_crawl_hash
    - lru_crawler_class_done
    - mod::eval
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void *item_crawler_thread(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:719,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:721,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/crawler.c:725,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:726,1
    - Dst: pthread_join
      Src: /src/memcached/crawler.c:727,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:728,1
    - Dst: strerror
      Src: /src/memcached/crawler.c:728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - wait
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 732
    functionName: stop_item_crawler_thread
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 2
    functionsReached:
    - pthread_join
    - fprintf
    - pthread_cond_signal
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - strerror
    linkageType: ''
    returnType: int
    signature: int stop_item_crawler_thread(bool wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:750,1
    - Dst: pthread_create
      Src: /src/memcached/crawler.c:752,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:754,1
    - Dst: strerror
      Src: /src/memcached/crawler.c:755,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:756,1
    - Dst: thread_setname
      Src: /src/memcached/crawler.c:759,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/crawler.c:761,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 765
    functionName: start_item_crawler_thread
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 1
    functionsReached:
    - fprintf
    - pthread_mutex_unlock
    - pthread_create
    - pthread_mutex_lock
    - thread_setname
    - strerror
    - pthread_cond_wait
    linkageType: ''
    returnType: int
    signature: int start_item_crawler_thread(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:774,1
    - Dst: fprintf
      Src: /src/memcached/crawler.c:777,1
    - Dst: do_get_lru_size
      Src: /src/memcached/crawler.c:785,1
    - Dst: do_item_linktail_q
      Src: /src/memcached/crawler.c:800,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:804,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - id
    - remaining
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 806
    functionName: do_lru_crawler_start
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - do_get_lru_size
    - do_item_linktail_q
    linkageType: ''
    returnType: int
    signature: int do_lru_crawler_start(uint32_t id, uint32_t remaining)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/crawler.c:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - cm
    - c
    - sfd
    argTypes:
    - crawler_module_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 825
    functionName: lru_crawler_set_client
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: int
    signature: int lru_crawler_set_client(crawler_module_t *cm, void *c, const int
      sfd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:833,1
    - Dst: STATS_LOCK
      Src: /src/memcached/crawler.c:834,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/crawler.c:836,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:838,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:844,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:850,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:856,1
    - Dst: assert
      Src: /src/memcached/crawler.c:862,1
    - Dst: mod::init
      Src: /src/memcached/crawler.c:866,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:870,1
    - Dst: lru_crawler_set_client
      Src: /src/memcached/crawler.c:873,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:874,1
    - Dst: do_lru_crawler_start
      Src: /src/memcached/crawler.c:891,1
    - Dst: STATS_LOCK
      Src: /src/memcached/crawler.c:895,1
    - Dst: STATS_UNLOCK
      Src: /src/memcached/crawler.c:898,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/crawler.c:899,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:901,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 6
    argNames:
    - ids
    - remaining
    - type
    - data
    - c
    - sfd
    argTypes:
    - uint8_t*
    - uint32_t
    - enum crawler_run_type
    - void*
    - void*
    - int
    assertStmts:
    - condition: (crawler_mod_regs[type] != NULL)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/memcached/crawler.c
    constantsTouched: []
    func_position:
      end: 903
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 903
    functionName: lru_crawler_start
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 2
    functionsReached:
    - pthread_cond_signal
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - mod::init
    - assert
    - STATS_LOCK
    - do_lru_crawler_start
    - lru_crawler_set_client
    - STATS_UNLOCK
    linkageType: ''
    returnType: int
    signature: "int lru_crawler_start(uint8_t *ids, uint32_t remaining,\n                             const
      enum crawler_run_type type, void *data,\n                             void *c,
      const int sfd)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/crawler.c:917,1
    - Dst: strcmp
      Src: /src/memcached/crawler.c:918,1
    - Dst: strcmp
      Src: /src/memcached/crawler.c:922,1
    - Dst: strtok_r
      Src: /src/memcached/crawler.c:925,1
    - Dst: strtok_r
      Src: /src/memcached/crawler.c:927,1
    - Dst: safe_strtoul
      Src: /src/memcached/crawler.c:929,1
    - Dst: lru_crawler_start
      Src: /src/memcached/crawler.c:940,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 5
    argNames:
    - slabs
    - type
    - c
    - sfd
    - remaining
    argTypes:
    - char*
    - enum crawler_run_type
    - void*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 950
    functionName: lru_crawler_crawl
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 1
    functionsReached:
    - safe_strtoul
    - strtok_r
    - memset
    - lru_crawler_start
    - strcmp
    linkageType: ''
    returnType: enum crawler_result_type
    signature: "enum crawler_result_type lru_crawler_crawl(char *slabs, const enum
      crawler_run_type type,\n        void *c, const int sfd, unsigned int remaining)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/crawler.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 955
    functionName: lru_crawler_pause
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void lru_crawler_pause(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/crawler.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: lru_crawler_resume
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void lru_crawler_resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 972
    functionName: init_lru_crawler
    functionSourceFile: /src/memcached/crawler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_lru_crawler(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pledge
      Src: /src/memcached/openbsd_priv.c:18,1
    - Dst: fprintf
      Src: /src/memcached/openbsd_priv.c:19,1
    - Dst: strerror
      Src: /src/memcached/openbsd_priv.c:19,1
    - Dst: exit
      Src: /src/memcached/openbsd_priv.c:20,1
    - Dst: pledge
      Src: /src/memcached/openbsd_priv.c:23,1
    - Dst: fprintf
      Src: /src/memcached/openbsd_priv.c:24,1
    - Dst: strerror
      Src: /src/memcached/openbsd_priv.c:24,1
    - Dst: exit
      Src: /src/memcached/openbsd_priv.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: drop_privileges
    functionSourceFile: /src/memcached/openbsd_priv.c
    functionUses: 0
    functionsReached:
    - exit
    - pledge
    - fprintf
    - strerror
    linkageType: ''
    returnType: void
    signature: void drop_privileges()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: setup_privilege_violations_handler
    functionSourceFile: /src/memcached/openbsd_priv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_privilege_violations_handler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/cache.c:19,1
    - Dst: strdup
      Src: /src/memcached/cache.c:20,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/cache.c:22,1
    - Dst: free
      Src: /src/memcached/cache.c:23,1
    - Dst: free
      Src: /src/memcached/cache.c:24,1
    - Dst: STAILQ_INIT
      Src: /src/memcached/cache.c:29,1
    - Dst: assert
      Src: /src/memcached/cache.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - name
    - bufsize
    - align
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts:
    - condition: (ret->bufsize >= sizeof(struct cache_free_s))
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/memcached/cache.c
    constantsTouched: []
    func_position:
      end: 39
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 39
    functionName: cache_create
    functionSourceFile: /src/memcached/cache.c
    functionUses: 7
    functionsReached:
    - free
    - STAILQ_INIT
    - pthread_mutex_init
    - assert
    - strdup
    - calloc
    linkageType: ''
    returnType: cache_t
    signature: cache_t * cache_create(const char *name, size_t bufsize, size_t align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/cache.c:42,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/cache.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - limit
    argTypes:
    - cache_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: cache_set_limit
    functionSourceFile: /src/memcached/cache.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void cache_set_limit(cache_t *cache, int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: get_object
    functionSourceFile: /src/memcached/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get_object(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_EMPTY
      Src: /src/memcached/cache.c:57,1
    - Dst: STAILQ_FIRST
      Src: /src/memcached/cache.c:58,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/cache.c:59,1
    - Dst: free
      Src: /src/memcached/cache.c:60,1
    - Dst: free
      Src: /src/memcached/cache.c:62,1
    - Dst: pthread_mutex_destroy
      Src: /src/memcached/cache.c:63,1
    - Dst: free
      Src: /src/memcached/cache.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: cache_destroy
    functionSourceFile: /src/memcached/cache.c
    functionUses: 5
    functionsReached:
    - free
    - STAILQ_EMPTY
    - pthread_mutex_destroy
    - STAILQ_FIRST
    - STAILQ_REMOVE_HEAD
    linkageType: ''
    returnType: void
    signature: void cache_destroy(cache_t *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/cache.c:69,1
    - Dst: do_cache_alloc
      Src: /src/memcached/cache.c:70,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/cache.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: cache_alloc
    functionSourceFile: /src/memcached/cache.c
    functionUses: 12
    functionsReached:
    - do_cache_alloc
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void * cache_alloc(cache_t *cache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STAILQ_FIRST
      Src: /src/memcached/cache.c:79,1
    - Dst: STAILQ_REMOVE_HEAD
      Src: /src/memcached/cache.c:80,1
    - Dst: get_object
      Src: /src/memcached/cache.c:81,1
    - Dst: malloc
      Src: /src/memcached/cache.c:84,1
    - Dst: get_object
      Src: /src/memcached/cache.c:86,1
    - Dst: memcpy
      Src: /src/memcached/cache.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 106
    functionName: do_cache_alloc
    functionSourceFile: /src/memcached/cache.c
    functionUses: 7
    functionsReached:
    - malloc
    - get_object
    - STAILQ_FIRST
    - STAILQ_REMOVE_HEAD
    - memcpy
    linkageType: ''
    returnType: void
    signature: void * do_cache_alloc(cache_t *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/cache.c:109,1
    - Dst: do_cache_free
      Src: /src/memcached/cache.c:110,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/cache.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - ptr
    argTypes:
    - cache_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: cache_free
    functionSourceFile: /src/memcached/cache.c
    functionUses: 16
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - do_cache_free
    linkageType: ''
    returnType: void
    signature: void cache_free(cache_t *cache, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/memcached/cache.c:117,1
    - Dst: raise
      Src: /src/memcached/cache.c:119,1
    - Dst: raise
      Src: /src/memcached/cache.c:126,1
    - Dst: free
      Src: /src/memcached/cache.c:133,1
    - Dst: STAILQ_INSERT_HEAD
      Src: /src/memcached/cache.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - cache
    - ptr
    argTypes:
    - cache_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 139
    functionName: do_cache_free
    functionSourceFile: /src/memcached/cache.c
    functionUses: 11
    functionsReached:
    - raise
    - free
    - STAILQ_INSERT_HEAD
    - memcmp
    linkageType: ''
    returnType: void
    signature: void do_cache_free(cache_t *cache, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - it
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 10
    functionName: STORAGE_delete
    functionSourceFile: /src/memcached/storage.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORAGE_delete(e, it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: X
    functionSourceFile: /src/memcached/proto_parser.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: MCP_PARSER_KEY
    functionSourceFile: /src/memcached/proto_parser.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCP_PARSER_KEY(pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: META_SPACE
    functionSourceFile: /src/memcached/proto_parser.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: META_SPACE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: META_CHAR
    functionSourceFile: /src/memcached/proto_parser.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: META_CHAR(p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - key
    - ','
    - nkey
    - ','
    - bin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: META_KEY
    functionSourceFile: /src/memcached/proto_parser.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: META_KEY(p, key, nkey, bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: E_DEBUG
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_DEBUG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: STAT_L
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_L(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: STAT_UL
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_UL(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - stat
    - ','
    - amount
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: STAT_INCR
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_INCR(e, stat, amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - stat
    - ','
    - amount
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: STAT_DECR
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_DECR(e, stat, amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/extstore.c:120,1
    - Dst: strlen
      Src: /src/memcached/extstore.c:120,1
    - Dst: pthread_setname_np
      Src: /src/memcached/extstore.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - thread
    - name
    argTypes:
    - pthread_t
    - char*
    assertStmts:
    - condition: (strlen(name) < THR_NAME_MAXLEN)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/memcached/extstore.c
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: thread_setname
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 11
    functionsReached:
    - pthread_setname_np
    - strlen
    - assert
    linkageType: ''
    returnType: void
    signature: void thread_setname(pthread_t thread, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/extstore.c:128,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:131,1
    - Dst: free
      Src: /src/memcached/extstore.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: wbuf_new
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    linkageType: ''
    returnType: _store_wbuf
    signature: _store_wbuf *wbuf_new(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:145,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - e
    argTypes:
    - store_engine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 161
    functionName: _get_io_thread
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: store_io_thread
    signature: store_io_thread *_get_io_thread(store_engine *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - store_engine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: _next_version
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _next_version(store_engine *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAT_L
      Src: /src/memcached/extstore.c:174,1
    - Dst: memcpy
      Src: /src/memcached/extstore.c:175,1
    - Dst: STAT_UL
      Src: /src/memcached/extstore.c:176,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:179,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:182,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:185,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - ptr
    - st
    argTypes:
    - void*
    - struct extstore_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: extstore_get_stats
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 3
    functionsReached:
    - STAT_UL
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAT_L
    - memcpy
    linkageType: ''
    returnType: void
    signature: void extstore_get_stats(void *ptr, struct extstore_stats *st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:197,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:202,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:211,1
    - Dst: _free_page
      Src: /src/memcached/extstore.c:218,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:220,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ptr
    - st
    argTypes:
    - void*
    - struct extstore_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 224
    functionName: extstore_get_page_data
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - _free_page
    linkageType: ''
    returnType: void
    signature: void extstore_get_page_data(void *ptr, struct extstore_stats *st)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - res
    argTypes:
    - enum extstore_res
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 254
    functionName: extstore_err
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *extstore_err(enum extstore_res res)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/extstore.c:284,1
    - Dst: open
      Src: /src/memcached/extstore.c:293,1
    - Dst: perror
      Src: /src/memcached/extstore.c:297,1
    - Dst: free
      Src: /src/memcached/extstore.c:299,1
    - Dst: fcntl
      Src: /src/memcached/extstore.c:308,1
    - Dst: free
      Src: /src/memcached/extstore.c:310,1
    - Dst: ftruncate
      Src: /src/memcached/extstore.c:313,1
    - Dst: free
      Src: /src/memcached/extstore.c:315,1
    - Dst: free
      Src: /src/memcached/extstore.c:325,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:330,1
    - Dst: free
      Src: /src/memcached/extstore.c:334,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/extstore.c:354,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:364,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:379,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:384,1
    - Dst: wbuf_new
      Src: /src/memcached/extstore.c:390,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:391,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/extstore.c:399,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/extstore.c:400,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/extstore.c:401,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:406,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/extstore.c:408,1
    - Dst: pthread_cond_init
      Src: /src/memcached/extstore.c:409,1
    - Dst: pthread_create
      Src: /src/memcached/extstore.c:412,1
    - Dst: thread_setname
      Src: /src/memcached/extstore.c:413,1
    - Dst: calloc
      Src: /src/memcached/extstore.c:418,1
    - Dst: pthread_mutex_init
      Src: /src/memcached/extstore.c:420,1
    - Dst: pthread_cond_init
      Src: /src/memcached/extstore.c:421,1
    - Dst: pthread_create
      Src: /src/memcached/extstore.c:422,1
    - Dst: thread_setname
      Src: /src/memcached/extstore.c:423,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 119
    argCount: 3
    argNames:
    - fh
    - cf
    - res
    argTypes:
    - struct extstore_conf_file*
    - struct extstore_conf*
    - enum extstore_res*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 426
    functionName: extstore_init
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 1
    functionsReached:
    - free
    - fcntl
    - pthread_create
    - thread_setname
    - pthread_mutex_init
    - open
    - ftruncate
    - pthread_cond_init
    - perror
    - wbuf_new
    - calloc
    linkageType: ''
    returnType: void
    signature: "void *extstore_init(struct extstore_conf_file *fh, struct extstore_conf
      *cf,\n        enum extstore_res *res)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/memcached/extstore.c:432,1
    - Dst: extstore_get_page_data
      Src: /src/memcached/extstore.c:433,1
    - Dst: extstore_evict_page
      Src: /src/memcached/extstore.c:461,1
    - Dst: free
      Src: /src/memcached/extstore.c:463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - e
    - bucket
    - free_bucket
    argTypes:
    - store_engine*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 464
    functionName: _evict_page
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - free
    - extstore_get_page_data
    - calloc
    - extstore_evict_page
    linkageType: ''
    returnType: void
    signature: "void _evict_page(store_engine *e, unsigned int bucket,\n        unsigned
      int free_bucket)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: E_DEBUG
      Src: /src/memcached/extstore.c:469,1
    - Dst: assert
      Src: /src/memcached/extstore.c:470,1
    - Dst: assert
      Src: /src/memcached/extstore.c:473,1
    - Dst: assert
      Src: /src/memcached/extstore.c:478,1
    - Dst: _next_version
      Src: /src/memcached/extstore.c:488,1
    - Dst: STAT_INCR
      Src: /src/memcached/extstore.c:491,1
    - Dst: E_DEBUG
      Src: /src/memcached/extstore.c:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - e
    - bucket
    - free_bucket
    argTypes:
    - store_engine*
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (e->page_free > 0)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/memcached/extstore.c
    - condition: (!e->page_buckets[bucket] || e->page_buckets[bucket]->allocated ==
        e->page_size)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/memcached/extstore.c
    - condition: (e->page_free > 0)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/memcached/extstore.c
    constantsTouched: []
    func_position:
      end: 497
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 497
    functionName: _allocate_page
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - _next_version
    - assert
    - STAT_INCR
    - E_DEBUG
    linkageType: ''
    returnType: store_page
    signature: "store_page *_allocate_page(store_engine *e, unsigned int bucket,\n
      \       unsigned int free_bucket)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/extstore.c:502,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:503,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - e
    - p
    argTypes:
    - store_engine*
    - store_page*
    assertStmts:
    - condition: (!p->wbuf)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/memcached/extstore.c
    constantsTouched: []
    func_position:
      end: 520
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 520
    functionName: _allocate_wbuf
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - assert
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void _allocate_wbuf(store_engine *e, store_page *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:536,1
    - Dst: assert
      Src: /src/memcached/extstore.c:537,1
    - Dst: assert
      Src: /src/memcached/extstore.c:538,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:546,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:552,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - ep
    - io
    - ret
    argTypes:
    - void*
    - obj_io*
    - int
    assertStmts:
    - condition: (p->wbuf != NULL && p->wbuf == w)
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/memcached/extstore.c
    - condition: (p->written == w->offset)
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/memcached/extstore.c
    constantsTouched: []
    func_position:
      end: 554
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 554
    functionName: _wbuf_cb
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - assert
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void _wbuf_cb(void *ep, obj_io *io, int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:561,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:564,1
    - Dst: memset
      Src: /src/memcached/extstore.c:568,1
    - Dst: extstore_submit_bg
      Src: /src/memcached/extstore.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - e
    - p
    argTypes:
    - store_engine*
    - store_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 580
    functionName: _submit_wbuf
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - extstore_submit_bg
    - pthread_mutex_unlock
    - memset
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void _submit_wbuf(store_engine *e, store_page *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:599,1
    - Dst: _allocate_page
      Src: /src/memcached/extstore.c:602,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:604,1
    - Dst: _evict_page
      Src: /src/memcached/extstore.c:606,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:610,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:616,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:617,1
    - Dst: _allocate_page
      Src: /src/memcached/extstore.c:618,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:619,1
    - Dst: _evict_page
      Src: /src/memcached/extstore.c:621,1
    - Dst: _submit_wbuf
      Src: /src/memcached/extstore.c:628,1
    - Dst: _allocate_wbuf
      Src: /src/memcached/extstore.c:633,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:644,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - ptr
    - bucket
    - free_bucket
    - io
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    - obj_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 647
    functionName: extstore_write_request
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - _evict_page
    - _allocate_page
    - pthread_mutex_unlock
    - _submit_wbuf
    - pthread_mutex_lock
    - _allocate_wbuf
    linkageType: ''
    returnType: int
    signature: "int extstore_write_request(void *ptr, unsigned int bucket,\n        unsigned
      int free_bucket, obj_io *io)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAT_L
      Src: /src/memcached/extstore.c:662,1
    - Dst: STAT_UL
      Src: /src/memcached/extstore.c:667,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ptr
    - io
    argTypes:
    - void*
    - obj_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 670
    functionName: extstore_write
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - STAT_UL
    - pthread_mutex_unlock
    - STAT_L
    linkageType: ''
    returnType: void
    signature: void extstore_write(void *ptr, obj_io *io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:687,1
    - Dst: assert
      Src: /src/memcached/extstore.c:695,1
    - Dst: assert
      Src: /src/memcached/extstore.c:696,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:701,1
    - Dst: pthread_cond_signal
      Src: /src/memcached/extstore.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - ptr
    - io
    - t
    argTypes:
    - void*
    - obj_io*
    - store_io_thread*
    assertStmts:
    - condition: (t->queue_tail->next == NULL)
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/memcached/extstore.c
    - condition: (tail->next == NULL)
      pos:
        line_end: 694
        line_start: 694
        source_file: /src/memcached/extstore.c
    constantsTouched: []
    func_position:
      end: 707
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 707
    functionName: _extstore_submit
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - assert
    - pthread_mutex_lock
    - pthread_cond_signal
    linkageType: ''
    returnType: int
    signature: int _extstore_submit(void *ptr, obj_io *io, store_io_thread *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_io_thread
      Src: /src/memcached/extstore.c:711,1
    - Dst: _extstore_submit
      Src: /src/memcached/extstore.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - io
    argTypes:
    - void*
    - obj_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: extstore_submit
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - _get_io_thread
    - _extstore_submit
    linkageType: ''
    returnType: int
    signature: int extstore_submit(void *ptr, obj_io *io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _extstore_submit
      Src: /src/memcached/extstore.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - io
    argTypes:
    - void*
    - obj_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: extstore_submit_bg
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - _extstore_submit
    linkageType: ''
    returnType: int
    signature: int extstore_submit_bg(void *ptr, obj_io *io)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:731,1
    - Dst: STAT_L
      Src: /src/memcached/extstore.c:744,1
    - Dst: STAT_UL
      Src: /src/memcached/extstore.c:747,1
    - Dst: _free_page
      Src: /src/memcached/extstore.c:750,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - ptr
    - page_id
    - page_version
    - count
    - bytes
    argTypes:
    - void*
    - unsigned int
    - uint64_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 757
    functionName: extstore_delete
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - STAT_UL
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAT_L
    - _free_page
    linkageType: ''
    returnType: int
    signature: "int extstore_delete(void *ptr, unsigned int page_id, uint64_t page_version,\n
      \       unsigned int count, unsigned int bytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:764,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - page_id
    - page_version
    argTypes:
    - void*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 769
    functionName: extstore_check
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int extstore_check(void *ptr, unsigned int page_id, uint64_t page_version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:776,1
    - Dst: _free_page
      Src: /src/memcached/extstore.c:780,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:783,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - page_id
    - page_version
    argTypes:
    - void*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 784
    functionName: extstore_close_page
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - _free_page
    linkageType: ''
    returnType: void
    signature: void extstore_close_page(void *ptr, unsigned int page_id, uint64_t
      page_version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:791,1
    - Dst: E_DEBUG
      Src: /src/memcached/extstore.c:793,1
    - Dst: STAT_L
      Src: /src/memcached/extstore.c:797,1
    - Dst: STAT_UL
      Src: /src/memcached/extstore.c:801,1
    - Dst: _free_page
      Src: /src/memcached/extstore.c:803,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - page_id
    - page_version
    argTypes:
    - void*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 807
    functionName: extstore_evict_page
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 2
    functionsReached:
    - STAT_UL
    - E_DEBUG
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAT_L
    - _free_page
    linkageType: ''
    returnType: void
    signature: void extstore_evict_page(void *ptr, unsigned int page_id, uint64_t
      page_version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/extstore.c:817,1
    - Dst: assert
      Src: /src/memcached/extstore.c:818,1
    - Dst: memcpy
      Src: /src/memcached/extstore.c:820,1
    - Dst: memcpy
      Src: /src/memcached/extstore.c:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - io
    argTypes:
    - store_page*
    - obj_io*
    assertStmts:
    - condition: (wbuf != NULL)
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/memcached/extstore.c
    - condition: (io->offset < p->written + wbuf->size)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/memcached/extstore.c
    constantsTouched: []
    func_position:
      end: 832
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 832
    functionName: _read_from_wbuf
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _read_from_wbuf(store_page *p, obj_io *io)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:844,1
    - Dst: pthread_cond_wait
      Src: /src/memcached/extstore.c:846,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:870,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:884,1
    - Dst: _read_from_wbuf
      Src: /src/memcached/extstore.c:887,1
    - Dst: STAT_L
      Src: /src/memcached/extstore.c:892,1
    - Dst: STAT_UL
      Src: /src/memcached/extstore.c:895,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:900,1
    - Dst: lseek
      Src: /src/memcached/extstore.c:905,1
    - Dst: read
      Src: /src/memcached/extstore.c:908,1
    - Dst: readv
      Src: /src/memcached/extstore.c:910,1
    - Dst: pread
      Src: /src/memcached/extstore.c:915,1
    - Dst: preadv
      Src: /src/memcached/extstore.c:917,1
    - Dst: pwrite
      Src: /src/memcached/extstore.c:926,1
    - Dst: E_DEBUG
      Src: /src/memcached/extstore.c:930,1
    - Dst: perror
      Src: /src/memcached/extstore.c:935,1
    - Dst: obj_io*::cb
      Src: /src/memcached/extstore.c:938,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:940,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:942,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 949
    functionName: extstore_io_thread
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 0
    functionsReached:
    - _read_from_wbuf
    - STAT_UL
    - obj_io*::cb
    - pread
    - E_DEBUG
    - pwrite
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - pthread_cond_wait
    - readv
    - STAT_L
    - read
    - perror
    - lseek
    - preadv
    linkageType: ''
    returnType: void
    signature: void *extstore_io_thread(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: E_DEBUG
      Src: /src/memcached/extstore.c:955,1
    - Dst: STAT_L
      Src: /src/memcached/extstore.c:956,1
    - Dst: STAT_UL
      Src: /src/memcached/extstore.c:960,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/extstore.c:961,1
    - Dst: E_DEBUG
      Src: /src/memcached/extstore.c:991,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/extstore.c:992,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 2
    argNames:
    - e
    - p
    argTypes:
    - store_engine*
    - store_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 993
    functionName: _free_page
    functionSourceFile: /src/memcached/extstore.c
    functionUses: 4
    functionsReached:
    - STAT_UL
    - E_DEBUG
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - STAT_L
    linkageType: ''
    returnType: void
    signature: void _free_page(store_engine *e, store_page *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:29,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:30,1
    - Dst: complete_update_bin
      Src: /src/memcached/proto_bin.c:34,1
    - Dst: process_bin_complete_sasl_auth
      Src: /src/memcached/proto_bin.c:37,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_bin.c:39,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:44,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/memcached/proto_bin.c
    - condition: (c->cmd >= 0)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/memcached/proto_bin.c
    - condition: (0)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: complete_nread_binary
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - complete_update_bin
    - fprintf
    - process_bin_complete_sasl_auth
    - assert
    - do_item_remove
    linkageType: ''
    returnType: void
    signature: void complete_nread_binary(conn *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/memcached/proto_bin.c:55,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:62,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:65,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:67,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:69,1
    - Dst: ntohs
      Src: /src/memcached/proto_bin.c:73,1
    - Dst: ntohl
      Src: /src/memcached/proto_bin.c:74,1
    - Dst: ntohll
      Src: /src/memcached/proto_bin.c:75,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:79,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:82,1
    - Dst: resp_start
      Src: /src/memcached/proto_bin.c:94,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:95,1
    - Dst: memcpy
      Src: /src/memcached/proto_bin.c:114,1
    - Dst: dispatch_bin_command
      Src: /src/memcached/proto_bin.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 123
    functionName: try_read_command_binary
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - resp_start
    - fprintf
    - memcpy
    - ntohl
    - conn_set_state
    - ntohs
    - dispatch_bin_command
    - ntohll
    linkageType: ''
    returnType: int
    signature: int try_read_command_binary(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: binary_get_key
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * binary_get_key(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:136,1
    - Dst: resp_reset
      Src: /src/memcached/proto_bin.c:138,1
    - Dst: htons
      Src: /src/memcached/proto_bin.c:144,1
    - Dst: htons
      Src: /src/memcached/proto_bin.c:148,1
    - Dst: htonl
      Src: /src/memcached/proto_bin.c:150,1
    - Dst: htonll
      Src: /src/memcached/proto_bin.c:152,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:156,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:159,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:161,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:163,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 5
    argNames:
    - c
    - err
    - hdr_len
    - key_len
    - body_len
    argTypes:
    - conn*
    - uint16_t
    - uint8_t
    - uint16_t
    - uint32_t
    assertStmts:
    - condition: (c)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 168
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 168
    functionName: add_bin_header
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - fprintf
    - resp_reset
    - htonl
    - htons
    - htonll
    - assert
    - resp_add_iov
    linkageType: ''
    returnType: void
    signature: void add_bin_header(conn *c, uint16_t err, uint8_t hdr_len, uint16_t
      key_len, uint32_t body_len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:210,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:212,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:217,1
    - Dst: strlen
      Src: /src/memcached/proto_bin.c:220,1
    - Dst: add_bin_header
      Src: /src/memcached/proto_bin.c:221,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:223,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:227,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:229,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - c
    - err
    - errstr
    - swallow
    argTypes:
    - conn*
    - protocol_binary_response_status
    - char*
    - int
    assertStmts:
    - condition: (false)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 231
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 231
    functionName: write_bin_error
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - fprintf
    - add_bin_header
    - strlen
    - assert
    - conn_set_state
    - resp_add_iov
    linkageType: ''
    returnType: void
    signature: "void write_bin_error(conn *c, protocol_binary_response_status err,\n
      \                           const char *errstr, int swallow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:235,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: handle_binary_protocol_error
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - write_bin_error
    - fprintf
    linkageType: ''
    returnType: void
    signature: void handle_binary_protocol_error(conn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_bin_header
      Src: /src/memcached/proto_bin.c:247,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:250,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - c
    - d
    - hlen
    - keylen
    - dlen
    argTypes:
    - conn*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: write_bin_response
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - add_bin_header
    - resp_add_iov
    - conn_set_state
    linkageType: ''
    returnType: void
    signature: void write_bin_response(conn *c, void *d, int hlen, int keylen, int
      dlen)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:265,1
    - Dst: ntohll
      Src: /src/memcached/proto_bin.c:272,1
    - Dst: ntohll
      Src: /src/memcached/proto_bin.c:273,1
    - Dst: ntohl
      Src: /src/memcached/proto_bin.c:274,1
    - Dst: binary_get_key
      Src: /src/memcached/proto_bin.c:275,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:280,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:283,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:285,1
    - Dst: add_delta
      Src: /src/memcached/proto_bin.c:294,1
    - Dst: htonll
      Src: /src/memcached/proto_bin.c:298,1
    - Dst: strtoull
      Src: /src/memcached/proto_bin.c:298,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:302,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:306,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_bin.c:309,1
    - Dst: htonll
      Src: /src/memcached/proto_bin.c:314,1
    - Dst: snprintf
      Src: /src/memcached/proto_bin.c:316,1
    - Dst: strlen
      Src: /src/memcached/proto_bin.c:318,1
    - Dst: item_alloc
      Src: /src/memcached/proto_bin.c:319,1
    - Dst: realtime
      Src: /src/memcached/proto_bin.c:319,1
    - Dst: memcpy
      Src: /src/memcached/proto_bin.c:324,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:324,1
    - Dst: memcpy
      Src: /src/memcached/proto_bin.c:325,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:325,1
    - Dst: store_item
      Src: /src/memcached/proto_bin.c:328,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_bin.c:328,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:330,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:332,1
    - Dst: item_remove
      Src: /src/memcached/proto_bin.c:335,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_bin.c:337,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:341,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:347,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:349,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:353,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 2
    argNames:
    - c
    - extbuf
    argTypes:
    - conn*
    - char*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 356
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 356
    functionName: complete_incr_bin
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - ntohl
    - snprintf
    - get_cas_id
    - strlen
    - ntohll
    - item_remove
    - strtoull
    - ITEM_data
    - htonll
    - assert
    - out_of_memory
    - binary_get_key
    - store_item
    - write_bin_error
    - pthread_mutex_lock
    - add_delta
    - write_bin_response
    - memcpy
    - fprintf
    - item_alloc
    - pthread_mutex_unlock
    - realtime
    linkageType: ''
    returnType: void
    signature: void complete_incr_bin(conn *c, char *extbuf)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:361,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:364,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_bin.c:365,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:366,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:371,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:372,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:374,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:378,1
    - Dst: store_item
      Src: /src/memcached/proto_bin.c:386,1
    - Dst: get_cas_id
      Src: /src/memcached/proto_bin.c:386,1
    - Dst: MEMCACHED_COMMAND_ADD
      Src: /src/memcached/proto_bin.c:392,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:392,1
    - Dst: MEMCACHED_COMMAND_REPLACE
      Src: /src/memcached/proto_bin.c:396,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:396,1
    - Dst: MEMCACHED_COMMAND_APPEND
      Src: /src/memcached/proto_bin.c:400,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:400,1
    - Dst: MEMCACHED_COMMAND_PREPEND
      Src: /src/memcached/proto_bin.c:404,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:404,1
    - Dst: MEMCACHED_COMMAND_SET
      Src: /src/memcached/proto_bin.c:408,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:408,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:417,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:420,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:423,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:435,1
    - Dst: item_remove
      Src: /src/memcached/proto_bin.c:438,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/memcached/proto_bin.c
    - condition: (ch->size - ch->used >= 2)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/memcached/proto_bin.c
    - condition: (c->ritem)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 440
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 440
    functionName: complete_update_bin
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - store_item
    - MEMCACHED_COMMAND_PREPEND
    - ITEM_clsid
    - item_remove
    - ITEM_data
    - MEMCACHED_COMMAND_APPEND
    - write_bin_error
    - pthread_mutex_unlock
    - MEMCACHED_COMMAND_REPLACE
    - get_cas_id
    - pthread_mutex_lock
    - MEMCACHED_COMMAND_SET
    - assert
    - write_bin_response
    - MEMCACHED_COMMAND_ADD
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void complete_update_bin(conn *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_bin_header
      Src: /src/memcached/proto_bin.c:444,1
    - Dst: memcpy
      Src: /src/memcached/proto_bin.c:447,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:448,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:449,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - c
    - key
    - nkey
    argTypes:
    - conn*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 442
    functionDepth: 4
    functionLinenumber: 442
    functionLinenumberEnd: 454
    functionName: write_bin_miss_response
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - write_bin_error
    - add_bin_header
    - conn_set_state
    - resp_add_iov
    - memcpy
    linkageType: ''
    returnType: void
    signature: void write_bin_miss_response(conn *c, char *key, size_t nkey)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: binary_get_key
      Src: /src/memcached/proto_bin.c:460,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:471,1
    - Dst: fwrite
      Src: /src/memcached/proto_bin.c:472,1
    - Dst: fputc
      Src: /src/memcached/proto_bin.c:473,1
    - Dst: ntohl
      Src: /src/memcached/proto_bin.c:478,1
    - Dst: item_touch
      Src: /src/memcached/proto_bin.c:480,1
    - Dst: realtime
      Src: /src/memcached/proto_bin.c:480,1
    - Dst: item_get
      Src: /src/memcached/proto_bin.c:482,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:490,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_bin.c:493,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:498,1
    - Dst: MEMCACHED_COMMAND_TOUCH
      Src: /src/memcached/proto_bin.c:501,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:501,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_bin.c:502,1
    - Dst: MEMCACHED_COMMAND_GET
      Src: /src/memcached/proto_bin.c:504,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:504,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_bin.c:505,1
    - Dst: add_bin_header
      Src: /src/memcached/proto_bin.c:515,1
    - Dst: htonll
      Src: /src/memcached/proto_bin.c:516,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_bin.c:516,1
    - Dst: FLAGS_CONV
      Src: /src/memcached/proto_bin.c:519,1
    - Dst: htonl
      Src: /src/memcached/proto_bin.c:520,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:521,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:524,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:524,1
    - Dst: storage_get_item
      Src: /src/memcached/proto_bin.c:533,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:534,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:536,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:540,1
    - Dst: conn_resp_suspend
      Src: /src/memcached/proto_bin.c:542,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:545,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:545,1
    - Dst: resp_add_chunked_iov
      Src: /src/memcached/proto_bin.c:548,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:552,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:552,1
    - Dst: resp_add_chunked_iov
      Src: /src/memcached/proto_bin.c:554,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:560,1
    - Dst: item_remove
      Src: /src/memcached/proto_bin.c:573,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:580,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:588,1
    - Dst: MEMCACHED_COMMAND_TOUCH
      Src: /src/memcached/proto_bin.c:591,1
    - Dst: MEMCACHED_COMMAND_GET
      Src: /src/memcached/proto_bin.c:593,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:597,1
    - Dst: write_bin_miss_response
      Src: /src/memcached/proto_bin.c:600,1
    - Dst: write_bin_miss_response
      Src: /src/memcached/proto_bin.c:602,1
    - Dst: stats_prefix_record_get
      Src: /src/memcached/proto_bin.c:608,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 109
    argCount: 2
    argNames:
    - c
    - extbuf
    argTypes:
    - conn*
    - char*
    assertStmts:
    - condition: (resp->io_pending != NULL)
      pos:
        line_end: 539
        line_start: 539
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 610
      start: 456
    functionDepth: 5
    functionLinenumber: 456
    functionLinenumberEnd: 610
    functionName: process_bin_get_or_touch
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - MEMCACHED_COMMAND_GET
    - ntohl
    - htonl
    - item_touch
    - item_remove
    - fputc
    - ITEM_clsid
    - ITEM_data
    - add_bin_header
    - htonll
    - stats_prefix_record_get
    - assert
    - conn_set_state
    - binary_get_key
    - resp_add_iov
    - storage_get_item
    - item_get
    - pthread_mutex_lock
    - ITEM_get_cas
    - FLAGS_CONV
    - conn_resp_suspend
    - MEMCACHED_COMMAND_TOUCH
    - fprintf
    - pthread_mutex_unlock
    - resp_add_chunked_iov
    - fwrite
    - write_bin_miss_response
    - realtime
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void process_bin_get_or_touch(conn *c, char *extbuf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: binary_get_key
      Src: /src/memcached/proto_bin.c:613,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:618,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:620,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:622,1
    - Dst: server_stats
      Src: /src/memcached/proto_bin.c:627,1
    - Dst: get_stats
      Src: /src/memcached/proto_bin.c:628,1
    - Dst: strncmp
      Src: /src/memcached/proto_bin.c:629,1
    - Dst: stats_reset
      Src: /src/memcached/proto_bin.c:630,1
    - Dst: strncmp
      Src: /src/memcached/proto_bin.c:631,1
    - Dst: process_stat_settings
      Src: /src/memcached/proto_bin.c:632,1
    - Dst: strncmp
      Src: /src/memcached/proto_bin.c:633,1
    - Dst: strncmp
      Src: /src/memcached/proto_bin.c:635,1
    - Dst: stats_prefix_dump
      Src: /src/memcached/proto_bin.c:637,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_bin.c:639,1
    - Dst: free
      Src: /src/memcached/proto_bin.c:641,1
    - Dst: append_stats
      Src: /src/memcached/proto_bin.c:644,1
    - Dst: strlen
      Src: /src/memcached/proto_bin.c:644,1
    - Dst: free
      Src: /src/memcached/proto_bin.c:645,1
    - Dst: strncmp
      Src: /src/memcached/proto_bin.c:647,1
    - Dst: strncmp
      Src: /src/memcached/proto_bin.c:649,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:652,1
    - Dst: get_stats
      Src: /src/memcached/proto_bin.c:656,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_bin.c:658,1
    - Dst: write_and_free
      Src: /src/memcached/proto_bin.c:660,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:664,1
    - Dst: append_stats
      Src: /src/memcached/proto_bin.c:671,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_bin.c:673,1
    - Dst: write_and_free
      Src: /src/memcached/proto_bin.c:675,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 612
    functionDepth: 5
    functionLinenumber: 612
    functionLinenumberEnd: 678
    functionName: process_bin_stat
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    - server_stats
    - stats_reset
    - strncmp
    - write_bin_error
    - append_stats
    - process_stat_settings
    - strlen
    - out_of_memory
    - binary_get_key
    - get_stats
    - stats_prefix_dump
    - write_and_free
    linkageType: ''
    returnType: void
    signature: void process_bin_stat(conn *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:681,1
    - Dst: sasl_server_new
      Src: /src/memcached/proto_bin.c:689,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 701
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 701
    functionName: init_sasl_conn
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    - sasl_server_new
    linkageType: ''
    returnType: void
    signature: void init_sasl_conn(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:706,1
    - Dst: init_sasl_conn
      Src: /src/memcached/proto_bin.c:712,1
    - Dst: sasl_listmech
      Src: /src/memcached/proto_bin.c:715,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:724,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:726,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 703
    functionDepth: 4
    functionLinenumber: 703
    functionLinenumberEnd: 730
    functionName: bin_list_sasl_mechs
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sasl_listmech
    - write_bin_error
    - init_sasl_conn
    - write_bin_response
    linkageType: ''
    returnType: void
    signature: void bin_list_sasl_mechs(conn *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:735,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:741,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:747,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:748,1
    - Dst: binary_get_key
      Src: /src/memcached/proto_bin.c:752,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:753,1
    - Dst: item_alloc
      Src: /src/memcached/proto_bin.c:755,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:759,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:760,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_bin.c:762,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:768,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:770,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c->binary_header.request.extlen == 0)
      pos:
        line_end: 740
        line_start: 740
        source_file: /src/memcached/proto_bin.c
    - condition: (key)
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 772
      start: 732
    functionDepth: 6
    functionLinenumber: 732
    functionLinenumberEnd: 772
    functionName: process_bin_sasl_auth
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - item_alloc
    - ITEM_data
    - write_bin_error
    - assert
    - conn_set_state
    - binary_get_key
    - do_item_remove
    linkageType: ''
    returnType: void
    signature: void process_bin_sasl_auth(conn *c)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:775,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:779,1
    - Dst: init_sasl_conn
      Src: /src/memcached/proto_bin.c:780,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:786,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:787,1
    - Dst: memcpy
      Src: /src/memcached/proto_bin.c:792,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:792,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:796,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:798,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:801,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:802,1
    - Dst: sasl_server_start
      Src: /src/memcached/proto_bin.c:810,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:818,1
    - Dst: sasl_server_step
      Src: /src/memcached/proto_bin.c:823,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:828,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:832,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:839,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:845,1
    - Dst: strlen
      Src: /src/memcached/proto_bin.c:845,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:846,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:848,1
    - Dst: add_bin_header
      Src: /src/memcached/proto_bin.c:851,1
    - Dst: resp_add_iov
      Src: /src/memcached/proto_bin.c:853,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:856,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:860,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:861,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:862,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:865,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (settings.sasl)
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/memcached/proto_bin.c
    - condition: (c->item)
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/memcached/proto_bin.c
    - condition: (false)
      pos:
        line_end: 827
        line_start: 827
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 867
      start: 774
    functionDepth: 4
    functionLinenumber: 774
    functionLinenumberEnd: 867
    functionName: process_bin_complete_sasl_auth
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - sasl_server_start
    - fprintf
    - ITEM_data
    - init_sasl_conn
    - write_bin_error
    - pthread_mutex_unlock
    - sasl_server_step
    - pthread_mutex_lock
    - add_bin_header
    - strlen
    - assert
    - conn_set_state
    - write_bin_response
    - resp_add_iov
    - ITEM_key
    - memcpy
    linkageType: ''
    returnType: void
    signature: void process_bin_complete_sasl_auth(conn *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:870,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (settings.sasl)
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 890
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 890
    functionName: authenticated
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: bool
    signature: bool authenticated(conn *c)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:901,1
    - Dst: authenticated
      Src: /src/memcached/proto_bin.c:906,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:907,1
    - Dst: MEMCACHED_PROCESS_COMMAND_START
      Src: /src/memcached/proto_bin.c:912,1
    - Dst: handle_binary_protocol_error
      Src: /src/memcached/proto_bin.c:917,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:971,1
    - Dst: strlen
      Src: /src/memcached/proto_bin.c:971,1
    - Dst: process_bin_flush
      Src: /src/memcached/proto_bin.c:978,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:985,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:987,1
    - Dst: process_bin_update
      Src: /src/memcached/proto_bin.c:996,1
    - Dst: process_bin_get_or_touch
      Src: /src/memcached/proto_bin.c:1006,1
    - Dst: process_bin_delete
      Src: /src/memcached/proto_bin.c:1013,1
    - Dst: complete_incr_bin
      Src: /src/memcached/proto_bin.c:1021,1
    - Dst: process_bin_append_prepend
      Src: /src/memcached/proto_bin.c:1029,1
    - Dst: process_bin_stat
      Src: /src/memcached/proto_bin.c:1036,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:1043,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:1044,1
    - Dst: bin_list_sasl_mechs
      Src: /src/memcached/proto_bin.c:1053,1
    - Dst: process_bin_sasl_auth
      Src: /src/memcached/proto_bin.c:1061,1
    - Dst: process_bin_get_or_touch
      Src: /src/memcached/proto_bin.c:1072,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:1078,1
    - Dst: handle_binary_protocol_error
      Src: /src/memcached/proto_bin.c:1083,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 177
    argCount: 2
    argNames:
    - c
    - extbuf
    argTypes:
    - conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 892
    functionDepth: 7
    functionLinenumber: 892
    functionLinenumberEnd: 1084
    functionName: dispatch_bin_command
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - process_bin_update
    - process_bin_delete
    - process_bin_append_prepend
    - write_bin_error
    - process_bin_stat
    - authenticated
    - strlen
    - bin_list_sasl_mechs
    - process_bin_get_or_touch
    - handle_binary_protocol_error
    - conn_set_state
    - complete_incr_bin
    - MEMCACHED_PROCESS_COMMAND_START
    - write_bin_response
    - process_bin_flush
    - process_bin_sasl_auth
    linkageType: ''
    returnType: void
    signature: void dispatch_bin_command(conn *c, char *extbuf)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:1093,1
    - Dst: binary_get_key
      Src: /src/memcached/proto_bin.c:1095,1
    - Dst: ntohl
      Src: /src/memcached/proto_bin.c:1099,1
    - Dst: ntohl
      Src: /src/memcached/proto_bin.c:1100,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1107,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1109,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1111,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1114,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1117,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1118,1
    - Dst: stats_prefix_record_set
      Src: /src/memcached/proto_bin.c:1122,1
    - Dst: item_alloc
      Src: /src/memcached/proto_bin.c:1125,1
    - Dst: realtime
      Src: /src/memcached/proto_bin.c:1126,1
    - Dst: item_size_ok
      Src: /src/memcached/proto_bin.c:1130,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:1131,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_bin.c:1134,1
    - Dst: LOGGER_LOG
      Src: /src/memcached/proto_bin.c:1140,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_bin.c:1142,1
    - Dst: item_get
      Src: /src/memcached/proto_bin.c:1147,1
    - Dst: item_unlink
      Src: /src/memcached/proto_bin.c:1149,1
    - Dst: STORAGE_delete
      Src: /src/memcached/proto_bin.c:1150,1
    - Dst: item_remove
      Src: /src/memcached/proto_bin.c:1151,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:1156,1
    - Dst: ITEM_set_cas
      Src: /src/memcached/proto_bin.c:1160,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:1173,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_bin.c:1176,1
    - Dst: ITEM_schunk
      Src: /src/memcached/proto_bin.c:1183,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:1185,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:1188,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:1191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 2
    argNames:
    - c
    - extbuf
    argTypes:
    - conn*
    - char*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 1092
        line_start: 1092
        source_file: /src/memcached/proto_bin.c
    - condition: (0)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 1193
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1193
    functionName: process_bin_update
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - ITEM_schunk
    - item_size_ok
    - ntohl
    - item_unlink
    - item_remove
    - ITEM_clsid
    - ITEM_data
    - LOGGER_LOG
    - assert
    - conn_set_state
    - out_of_memory
    - binary_get_key
    - ITEM_set_cas
    - write_bin_error
    - item_get
    - ITEM_get_cas
    - fprintf
    - item_alloc
    - STORAGE_delete
    - stats_prefix_record_set
    - realtime
    linkageType: ''
    returnType: void
    signature: void process_bin_update(conn *c, char *extbuf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:1201,1
    - Dst: binary_get_key
      Src: /src/memcached/proto_bin.c:1203,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1208,1
    - Dst: stats_prefix_record_set
      Src: /src/memcached/proto_bin.c:1212,1
    - Dst: item_alloc
      Src: /src/memcached/proto_bin.c:1215,1
    - Dst: item_size_ok
      Src: /src/memcached/proto_bin.c:1218,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:1219,1
    - Dst: out_of_memory
      Src: /src/memcached/proto_bin.c:1221,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:1226,1
    - Dst: ITEM_set_cas
      Src: /src/memcached/proto_bin.c:1230,1
    - Dst: assert
      Src: /src/memcached/proto_bin.c:1240,1
    - Dst: ITEM_schunk
      Src: /src/memcached/proto_bin.c:1246,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:1248,1
    - Dst: ITEM_data
      Src: /src/memcached/proto_bin.c:1251,1
    - Dst: conn_set_state
      Src: /src/memcached/proto_bin.c:1254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/memcached/proto_bin.c
    - condition: (0)
      pos:
        line_end: 1239
        line_start: 1239
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 1256
      start: 1195
    functionDepth: 4
    functionLinenumber: 1195
    functionLinenumberEnd: 1256
    functionName: process_bin_append_prepend
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - ITEM_set_cas
    - item_size_ok
    - fprintf
    - item_alloc
    - ITEM_schunk
    - ITEM_data
    - write_bin_error
    - stats_prefix_record_set
    - assert
    - conn_set_state
    - out_of_memory
    - binary_get_key
    linkageType: ''
    returnType: void
    signature: void process_bin_append_prepend(conn *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:1265,1
    - Dst: ntohl
      Src: /src/memcached/proto_bin.c:1270,1
    - Dst: realtime
      Src: /src/memcached/proto_bin.c:1274,1
    - Dst: item_flush_expired
      Src: /src/memcached/proto_bin.c:1279,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:1281,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:1283,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - c
    - extbuf
    argTypes:
    - conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1258
    functionDepth: 5
    functionLinenumber: 1258
    functionLinenumberEnd: 1286
    functionName: process_bin_flush
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - write_bin_error
    - ntohl
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - item_flush_expired
    - write_bin_response
    - realtime
    linkageType: ''
    returnType: void
    signature: void process_bin_flush(conn *c, char *extbuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/memcached/proto_bin.c:1292,1
    - Dst: binary_get_key
      Src: /src/memcached/proto_bin.c:1293,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1298,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1300,1
    - Dst: fprintf
      Src: /src/memcached/proto_bin.c:1302,1
    - Dst: stats_prefix_record_delete
      Src: /src/memcached/proto_bin.c:1306,1
    - Dst: item_get_locked
      Src: /src/memcached/proto_bin.c:1309,1
    - Dst: ITEM_get_cas
      Src: /src/memcached/proto_bin.c:1312,1
    - Dst: MEMCACHED_COMMAND_DELETE
      Src: /src/memcached/proto_bin.c:1313,1
    - Dst: ITEM_key
      Src: /src/memcached/proto_bin.c:1313,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:1314,1
    - Dst: ITEM_clsid
      Src: /src/memcached/proto_bin.c:1315,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:1316,1
    - Dst: do_item_unlink
      Src: /src/memcached/proto_bin.c:1317,1
    - Dst: STORAGE_delete
      Src: /src/memcached/proto_bin.c:1318,1
    - Dst: write_bin_response
      Src: /src/memcached/proto_bin.c:1319,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:1321,1
    - Dst: do_item_remove
      Src: /src/memcached/proto_bin.c:1323,1
    - Dst: write_bin_error
      Src: /src/memcached/proto_bin.c:1325,1
    - Dst: pthread_mutex_lock
      Src: /src/memcached/proto_bin.c:1326,1
    - Dst: pthread_mutex_unlock
      Src: /src/memcached/proto_bin.c:1328,1
    - Dst: item_unlock
      Src: /src/memcached/proto_bin.c:1330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - c
    argTypes:
    - conn*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 1291
        line_start: 1291
        source_file: /src/memcached/proto_bin.c
    constantsTouched: []
    func_position:
      end: 1331
      start: 1288
    functionDepth: 6
    functionLinenumber: 1288
    functionLinenumberEnd: 1331
    functionName: process_bin_delete
    functionSourceFile: /src/memcached/proto_bin.c
    functionUses: 1
    functionsReached:
    - fprintf
    - item_get_locked
    - ITEM_clsid
    - do_item_remove
    - write_bin_error
    - STORAGE_delete
    - pthread_mutex_unlock
    - MEMCACHED_COMMAND_DELETE
    - pthread_mutex_lock
    - do_item_unlink
    - item_unlock
    - stats_prefix_record_delete
    - assert
    - ITEM_get_cas
    - binary_get_key
    - write_bin_response
    - ITEM_key
    linkageType: ''
    returnType: void
    signature: void process_bin_delete(conn *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - t
    - ','
    - line
    - ','
    - len
    - ','
    - mstart
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: _mcmc_tokenize
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mcmc_tokenize(t, line, len, mstart, max)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/memcached/vendor/mcmc/mcmc.c:82,1
    - Dst: memchr
      Src: /src/memcached/vendor/mcmc/mcmc.c:91,1
    - Dst: memchr
      Src: /src/memcached/vendor/mcmc/mcmc.c:105,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 5
    argNames:
    - t
    - line
    - len
    - mstart
    - max
    argTypes:
    - mcmc_tokenizer_t*
    - char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 124
    functionName: _mcmc_tokenize_meta
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - isdigit
    - memchr
    linkageType: ''
    returnType: MCMC_STATIC
    signature: MCMC_STATIC _mcmc_tokenize_meta(mcmc_tokenizer_t *t, const char *line,
      size_t len, const int mstart, const int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - line
    - t
    - token
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: _mcmc_token_len
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MCMC_STATIC
    signature: MCMC_STATIC _mcmc_token_len(const char *line, mcmc_tokenizer_t *t,
      size_t token)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - line
    - t
    - token
    - len
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: _mcmc_token
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MCMC_STATIC
    signature: MCMC_STATIC *_mcmc_token(const char *line, mcmc_tokenizer_t *t, size_t
      token, int *len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/memcached/vendor/mcmc/mcmc.c:156,1
    - Dst: strtoul
      Src: /src/memcached/vendor/mcmc/mcmc.c:168,1
    - Dst: strtoul
      Src: /src/memcached/vendor/mcmc/mcmc.c:175,1
    - Dst: strtoull
      Src: /src/memcached/vendor/mcmc/mcmc.c:185,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - buf
    - read
    - r
    argTypes:
    - char*
    - size_t
    - mcmc_resp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 210
    functionName: _mcmc_parse_value_line
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - strtoul
    - strtoull
    - memchr
    linkageType: ''
    returnType: int
    signature: int _mcmc_parse_value_line(const char *buf, size_t read, mcmc_resp_t
      *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/memcached/vendor/mcmc/mcmc.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - r
    argTypes:
    - char*
    - mcmc_resp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: _mcmc_parse_stat_line
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: int _mcmc_parse_stat_line(const char *buf, mcmc_resp_t *r)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/memcached/vendor/mcmc/mcmc.c:332,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:379,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:386,1
    - Dst: _mcmc_parse_stat_line
      Src: /src/memcached/vendor/mcmc/mcmc.c:388,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:392,1
    - Dst: _mcmc_parse_value_line
      Src: /src/memcached/vendor/mcmc/mcmc.c:395,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:399,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:405,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:408,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:415,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:418,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:421,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:428,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:434,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:441,1
    - Dst: memcmp
      Src: /src/memcached/vendor/mcmc/mcmc.c:444,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 180
    argCount: 3
    argNames:
    - buf
    - read
    - r
    argTypes:
    - char*
    - size_t
    - mcmc_resp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 458
    functionName: _mcmc_parse_response
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - _mcmc_parse_stat_line
    - strtoul
    - _mcmc_parse_value_line
    - memcmp
    linkageType: ''
    returnType: int
    signature: int _mcmc_parse_response(const char *buf, size_t read, mcmc_resp_t
      *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - t
    - len
    - out
    argTypes:
    - char*
    - size_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 492
    functionName: mcmc_toktou32
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MCMC_STATIC
    signature: MCMC_STATIC mcmc_toktou32(const char *t, size_t len, uint32_t *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - t
    - len
    - out
    argTypes:
    - char*
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 515
    functionName: mcmc_toktou64
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MCMC_STATIC
    signature: MCMC_STATIC mcmc_toktou64(const char *t, size_t len, uint64_t *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - t
    - len
    - out
    argTypes:
    - char*
    - size_t
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 553
    functionName: mcmc_tokto32
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MCMC_STATIC
    signature: MCMC_STATIC mcmc_tokto32(const char *t, size_t len, int32_t *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - t
    - len
    - out
    argTypes:
    - char*
    - size_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 591
    functionName: mcmc_tokto64
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MCMC_STATIC
    signature: MCMC_STATIC mcmc_tokto64(const char *t, size_t len, int64_t *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mcmc_tokenize_meta
      Src: /src/memcached/vendor/mcmc/mcmc.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - l
    - len
    - t
    argTypes:
    - char*
    - size_t
    - mcmc_tokenizer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 604
    functionName: mcmc_tokenize_res
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 7
    functionsReached:
    - _mcmc_tokenize_meta
    linkageType: ''
    returnType: int
    signature: int mcmc_tokenize_res(const char *l, size_t len, mcmc_tokenizer_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mcmc_tokenize_meta
      Src: /src/memcached/vendor/mcmc/mcmc.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - l
    - len
    - t
    - meta_offset
    argTypes:
    - char*
    - size_t
    - mcmc_tokenizer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: mcmc_tokenize
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 8
    functionsReached:
    - _mcmc_tokenize_meta
    linkageType: ''
    returnType: int
    signature: int mcmc_tokenize(const char *l, size_t len, mcmc_tokenizer_t *t, int
      meta_offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mcmc_token
      Src: /src/memcached/vendor/mcmc/mcmc.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - l
    - t
    - idx
    - len
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 616
    functionName: mcmc_token_get
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 19
    functionsReached:
    - _mcmc_token
    linkageType: ''
    returnType: char
    signature: char *mcmc_token_get(const char *l, mcmc_tokenizer_t *t, int idx, int
      *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n
    - ','
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 628
    functionName: X
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(n, p, c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - l
    - t
    - flag
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 646
    functionName: mcmc_token_has_flag
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mcmc_token_has_flag(const char *l, mcmc_tokenizer_t *t, char flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mcmc_token_len
      Src: /src/memcached/vendor/mcmc/mcmc.c:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - l
    - t
    - flag
    - len
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - char
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 670
    functionName: mcmc_token_get_flag
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 4
    functionsReached:
    - _mcmc_token_len
    linkageType: ''
    returnType: char
    signature: char *mcmc_token_get_flag(const char *l, mcmc_tokenizer_t *t, char
      flag, int *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/vendor/mcmc/mcmc.c:674,1
    - Dst: mcmc_toktou32
      Src: /src/memcached/vendor/mcmc/mcmc.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - l
    - t
    - flag
    - val
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - char
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 680
    functionName: mcmc_token_get_flag_u32
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - mcmc_toktou32
    - mcmc_token_get_flag
    linkageType: ''
    returnType: int
    signature: int mcmc_token_get_flag_u32(const char *l, mcmc_tokenizer_t *t, char
      flag, uint32_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/vendor/mcmc/mcmc.c:684,1
    - Dst: mcmc_toktou64
      Src: /src/memcached/vendor/mcmc/mcmc.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - l
    - t
    - flag
    - val
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - char
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 690
    functionName: mcmc_token_get_flag_u64
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get_flag
    - mcmc_toktou64
    linkageType: ''
    returnType: int
    signature: int mcmc_token_get_flag_u64(const char *l, mcmc_tokenizer_t *t, char
      flag, uint64_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/vendor/mcmc/mcmc.c:694,1
    - Dst: mcmc_tokto32
      Src: /src/memcached/vendor/mcmc/mcmc.c:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - l
    - t
    - flag
    - val
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - char
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 700
    functionName: mcmc_token_get_flag_32
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - mcmc_token_get_flag
    - mcmc_tokto32
    linkageType: ''
    returnType: int
    signature: int mcmc_token_get_flag_32(const char *l, mcmc_tokenizer_t *t, char
      flag, int32_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcmc_token_get_flag
      Src: /src/memcached/vendor/mcmc/mcmc.c:704,1
    - Dst: mcmc_tokto64
      Src: /src/memcached/vendor/mcmc/mcmc.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - l
    - t
    - flag
    - val
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - char
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 710
    functionName: mcmc_token_get_flag_64
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 2
    functionsReached:
    - mcmc_tokto64
    - mcmc_token_get_flag
    linkageType: ''
    returnType: int
    signature: int mcmc_token_get_flag_64(const char *l, mcmc_tokenizer_t *t, char
      flag, int64_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - l
    - t
    - flag
    argTypes:
    - char*
    - mcmc_tokenizer_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 721
    functionName: mcmc_token_get_flag_idx
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mcmc_token_get_flag_idx(const char *l, mcmc_tokenizer_t *t, char
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/vendor/mcmc/mcmc.c:729,1
    - Dst: memchr
      Src: /src/memcached/vendor/mcmc/mcmc.c:730,1
    - Dst: _mcmc_parse_response
      Src: /src/memcached/vendor/mcmc/mcmc.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - read
    - r
    argTypes:
    - char*
    - size_t
    - mcmc_resp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 744
    functionName: mcmc_parse_buf
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 7
    functionsReached:
    - memset
    - _mcmc_parse_response
    - memchr
    linkageType: ''
    returnType: int
    signature: int mcmc_parse_buf(const char *buf, size_t read, mcmc_resp_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 751
    functionName: mcmc_fd
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mcmc_fd(void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 755
    functionName: mcmc_size
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mcmc_size(int options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: mcmc_min_buffer_size
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mcmc_min_buffer_size(int options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/memcached/vendor/mcmc/mcmc.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - err
    argTypes:
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 782
    functionName: mcmc_check_nonblock_connect
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 1
    functionsReached:
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int mcmc_check_nonblock_connect(void *c, int *err)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/memcached/vendor/mcmc/mcmc.c:801,1
    - Dst: memset
      Src: /src/memcached/vendor/mcmc/mcmc.c:802,1
    - Dst: getaddrinfo
      Src: /src/memcached/vendor/mcmc/mcmc.c:807,1
    - Dst: getaddrinfo
      Src: /src/memcached/vendor/mcmc/mcmc.c:811,1
    - Dst: socket
      Src: /src/memcached/vendor/mcmc/mcmc.c:821,1
    - Dst: setsockopt
      Src: /src/memcached/vendor/mcmc/mcmc.c:828,1
    - Dst: close
      Src: /src/memcached/vendor/mcmc/mcmc.c:830,1
    - Dst: fcntl
      Src: /src/memcached/vendor/mcmc/mcmc.c:836,1
    - Dst: close
      Src: /src/memcached/vendor/mcmc/mcmc.c:839,1
    - Dst: fcntl
      Src: /src/memcached/vendor/mcmc/mcmc.c:842,1
    - Dst: close
      Src: /src/memcached/vendor/mcmc/mcmc.c:844,1
    - Dst: connect
      Src: /src/memcached/vendor/mcmc/mcmc.c:849,1
    - Dst: connect
      Src: /src/memcached/vendor/mcmc/mcmc.c:858,1
    - Dst: close
      Src: /src/memcached/vendor/mcmc/mcmc.c:862,1
    - Dst: freeaddrinfo
      Src: /src/memcached/vendor/mcmc/mcmc.c:874,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 4
    argNames:
    - c
    - host
    - port
    - options
    argTypes:
    - void*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 877
    functionName: mcmc_connect
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 2
    functionsReached:
    - getaddrinfo
    - connect
    - setsockopt
    - fcntl
    - socket
    - close
    - freeaddrinfo
    - memset
    linkageType: ''
    returnType: int
    signature: int mcmc_connect(void *c, char *host, char *port, int options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/memcached/vendor/mcmc/mcmc.c:888,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - c
    - request
    - len
    - count
    argTypes:
    - void*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 907
    functionName: mcmc_send_request
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - send
    linkageType: ''
    returnType: int
    signature: int mcmc_send_request(void *c, const char *request, int len, int count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writev
      Src: /src/memcached/vendor/mcmc/mcmc.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - c
    - iov
    - iovcnt
    - sent
    - count
    argTypes:
    - void*
    - struct iovec*
    - int
    - ssize_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 936
    functionName: mcmc_request_writev
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached:
    - writev
    linkageType: ''
    returnType: int
    signature: int mcmc_request_writev(void *c, const struct iovec *iov, int iovcnt,
      ssize_t *sent, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - c
    - code
    - clen
    - msg
    - mlen
    argTypes:
    - void*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1006
    functionName: mcmc_get_error
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mcmc_get_error(void *c, char *code, size_t clen, char *msg, size_t
      mlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/memcached/vendor/mcmc/mcmc.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1064
    functionName: mcmc_disconnect
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int mcmc_disconnect(void *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/memcached/vendor/mcmc/example.c:22,1
    - Dst: mcmc_fd
      Src: /src/memcached/vendor/mcmc/example.c:22,1
    - Dst: mcmc_parse_buf
      Src: /src/memcached/vendor/mcmc/example.c:26,1
    - Dst: printf
      Src: /src/memcached/vendor/mcmc/example.c:30,1
    - Dst: malloc
      Src: /src/memcached/vendor/mcmc/example.c:41,1
    - Dst: memcpy
      Src: /src/memcached/vendor/mcmc/example.c:42,1
    - Dst: recv
      Src: /src/memcached/vendor/mcmc/example.c:47,1
    - Dst: mcmc_fd
      Src: /src/memcached/vendor/mcmc/example.c:47,1
    - Dst: printf
      Src: /src/memcached/vendor/mcmc/example.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - c
    - rbuf
    - bufsize
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 56
    functionName: show_response_buffer
    functionSourceFile: /src/memcached/vendor/mcmc/example.c
    functionUses: 0
    functionsReached:
    - mcmc_parse_buf
    - printf
    - malloc
    - mcmc_fd
    - recv
    - memcpy
    linkageType: ''
    returnType: void
    signature: void show_response_buffer(void *c, char *rbuf, size_t bufsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/memcached/vendor/mcmc/example.c:146,1
    - Dst: mcmc_size
      Src: /src/memcached/vendor/mcmc/example.c:146,1
    - Dst: mcmc_min_buffer_size
      Src: /src/memcached/vendor/mcmc/example.c:147,1
    - Dst: malloc
      Src: /src/memcached/vendor/mcmc/example.c:148,1
    - Dst: mcmc_connect
      Src: /src/memcached/vendor/mcmc/example.c:150,1
    - Dst: strlen
      Src: /src/memcached/vendor/mcmc/example.c:158,1
    - Dst: mcmc_send_request
      Src: /src/memcached/vendor/mcmc/example.c:159,1
    - Dst: strlen
      Src: /src/memcached/vendor/mcmc/example.c:159,1
    - Dst: fprintf
      Src: /src/memcached/vendor/mcmc/example.c:162,1
    - Dst: show_response_buffer
      Src: /src/memcached/vendor/mcmc/example.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 170
    functionName: buffer_mode
    functionSourceFile: /src/memcached/vendor/mcmc/example.c
    functionUses: 0
    functionsReached:
    - fprintf
    - show_response_buffer
    - mcmc_min_buffer_size
    - malloc
    - mcmc_size
    - mcmc_connect
    - strlen
    - mcmc_send_request
    linkageType: ''
    returnType: void
    signature: void buffer_mode(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/memcached/vendor/mcmc/example.c:174,1
    - Dst: signal
      Src: /src/memcached/vendor/mcmc/example.c:176,1
    - Dst: perror
      Src: /src/memcached/vendor/mcmc/example.c:177,1
    - Dst: exit
      Src: /src/memcached/vendor/mcmc/example.c:178,1
    - Dst: buffer_mode
      Src: /src/memcached/vendor/mcmc/example.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - agv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 292
    functionName: main
    functionSourceFile: /src/memcached/vendor/mcmc/example.c
    functionUses: 0
    functionsReached:
    - printf
    - buffer_mode
    - exit
    - signal
    - perror
    linkageType: ''
    returnType: int
    signature: int main (int argc, char *agv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: mcmc_token_count
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcmc_token_count(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: mcmc_token_has_flag_bit
    functionSourceFile: /src/memcached/vendor/mcmc/mcmc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mcmc_token_has_flag_bit(t, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: EVENT_DEBUG_MODE_IS_ON
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_DEBUG_MODE_IS_ON()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: EVENT_DEBUG_MODE_IS_ON
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_DEBUG_MODE_IS_ON()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: LIST_END
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: TAILQ_FIRST
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: TAILQ_END
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: TAILQ_NEXT
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: TAILQ_INSERT_BEFORE
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: N_ACTIVE_CALLBACKS
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: N_ACTIVE_CALLBACKS(base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/watch.c:32,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/watch.c:39,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/watch.c:40,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/watch.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - base
    - callback
    - arg
    - type
    argTypes:
    - struct event_base*
    - union evwatch_cb
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: evwatch_new
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - mm_malloc
    - TAILQ_INSERT_TAIL
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: struct evwatch
    signature: 'struct evwatch *

      evwatch_new(struct event_base *base, union evwatch_cb callback, void *arg, unsigned
      type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_new
      Src: /src/libevent/watch.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - callback
    - arg
    argTypes:
    - struct event_base*
    - evwatch_prepare_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: evwatch_prepare_new
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - evwatch_new
    linkageType: ''
    returnType: struct evwatch
    signature: 'struct evwatch *

      evwatch_prepare_new(struct event_base *base, evwatch_prepare_cb callback, void
      *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_new
      Src: /src/libevent/watch.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - callback
    - arg
    argTypes:
    - struct event_base*
    - evwatch_check_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: evwatch_check_new
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - evwatch_new
    linkageType: ''
    returnType: struct evwatch
    signature: 'struct evwatch *

      evwatch_check_new(struct event_base *base, evwatch_check_cb callback, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - watcher
    argTypes:
    - struct evwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: evwatch_base
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      evwatch_base(struct evwatch *watcher)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/watch.c:68,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/watch.c:69,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/watch.c:70,1
    - Dst: mm_free
      Src: /src/libevent/watch.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - watcher
    argTypes:
    - struct evwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: evwatch_free
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evwatch_free(struct evwatch *watcher)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - info
    - timeout
    argTypes:
    - struct evwatch_prepare_cb_info*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: evwatch_prepare_get_timeout
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evwatch_prepare_get_timeout(const struct evwatch_prepare_cb_info
      *info, struct timeval *timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: mm_malloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_malloc(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - count
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: mm_calloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_calloc(count, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: mm_strdup
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_strdup(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: mm_realloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_realloc(p, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: mm_free
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: mm_malloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_malloc(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: mm_calloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_calloc(n, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: mm_strdup
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_strdup(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: mm_realloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_realloc(p, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: mm_free
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: member_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: member_size(type, member)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:139,1
    - Dst: ntohs
      Src: /src/libevent/http.c:140,1
    - Dst: strlcpy
      Src: /src/libevent/http.c:141,1
    - Dst: strlcpy
      Src: /src/libevent/http.c:147,1
    - Dst: inet_ntoa
      Src: /src/libevent/http.c:147,1
    - Dst: gethostbyaddr
      Src: /src/libevent/http.c:154,1
    - Dst: strlcpy
      Src: /src/libevent/http.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 7
    argNames:
    - sa
    - salen
    - host
    - hostlen
    - serv
    - servlen
    - flags
    argTypes:
    - struct sockaddr*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: fake_getnameinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - gethostbyaddr
    - ntohs
    - strlcpy
    - inet_ntoa
    - evutil_snprintf
    linkageType: ''
    returnType: int
    signature: "int fake_getnameinfo(const struct sockaddr *sa, size_t salen, char
      *host,\n\tsize_t hostlen, char *serv, size_t servlen, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - req
    - ','
    - major_v
    - ','
    - minor_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: REQ_VERSION_BEFORE
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_VERSION_BEFORE(req, major_v, minor_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - req
    - ','
    - major_v
    - ','
    - minor_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: REQ_VERSION_ATLEAST
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_VERSION_ATLEAST(req, major_v, minor_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: MIN
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:232,1
    - Dst: strlen
      Src: /src/libevent/http.c:232,1
    - Dst: strstr
      Src: /src/libevent/http.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - del
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: strsep
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - EVUTIL_ASSERT
    - strstr
    linkageType: ''
    returnType: char
    signature: 'char *

      strsep(char **s, const char *del)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - ch
    - escaped
    argTypes:
    - char
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: html_replace
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t html_replace(const char ch, const char **escaped)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:289,1
    - Dst: html_replace
      Src: /src/libevent/http.c:292,1
    - Dst: event_warn
      Src: /src/libevent/http.c:294,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:302,1
    - Dst: event_warn
      Src: /src/libevent/http.c:304,1
    - Dst: html_replace
      Src: /src/libevent/http.c:310,1
    - Dst: memcpy
      Src: /src/libevent/http.c:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - html
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 318
    functionName: evhttp_htmlescape
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - event_warn
    - html_replace
    - strlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_htmlescape(const char *html)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: struct evhttp_connection*::ext_method_cmp
      Src: /src/libevent/http.c:398,1
    - Dst: event_debug
      Src: /src/libevent/http.c:401,1
    - Dst: event_debug
      Src: /src/libevent/http.c:413,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 3
    argNames:
    - evcon
    - type
    - flags
    argTypes:
    - struct evhttp_connection*
    - enum evhttp_cmd_type
    - ev_uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 419
    functionName: evhttp_method_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_debug
    - struct evhttp_connection*::ext_method_cmp
    linkageType: ''
    returnType: char
    signature: "char *\nevhttp_method_(struct evhttp_connection *evcon,\n              enum
      evhttp_cmd_type type, ev_uint16_t *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: evhttp_response_needs_body
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_response_needs_body(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:445,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:454,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: evhttp_write_buffer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - bufferevent_setcb
    - event_debug
    linkageType: ''
    returnType: void
    signature: "void evhttp_write_buffer(struct evhttp_connection *evcon,\n    void
      (*cb)(struct evhttp_connection *, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: evhttp_send_continue_done
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_send_continue_done(struct evhttp_connection *evcon, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:473,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:474,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:474,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 484
    functionName: evhttp_send_continue
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - evbuffer_add_printf
    - bufferevent_setcb
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_continue(struct evhttp_connection *evcon,\n\t\t\tstruct
      evhttp_request *req)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 503
    functionName: evhttp_connected
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_connected(struct evhttp_connection *evcon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_method_
      Src: /src/libevent/http.c:518,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:522,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:522,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:529,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:531,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:533,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:534,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:534,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 537
    functionName: evhttp_make_header_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_method_
    - evhttp_add_header
    - evbuffer_add_printf
    - evbuffer_get_length
    - EV_SIZE_ARG
    - evhttp_find_header
    - evutil_snprintf
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: "void evhttp_make_header_request(struct evhttp_connection *evcon,\n
      \   struct evhttp_request *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:545,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - flags
    - headers
    argTypes:
    - int
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: evhttp_is_connection_close
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_find_header
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: int
    signature: int evhttp_is_connection_close(int flags, struct evkeyvalq* headers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_is_connection_close
      Src: /src/libevent/http.c:556,1
    - Dst: evhttp_is_connection_close
      Src: /src/libevent/http.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: evhttp_is_request_connection_close
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_is_connection_close
    linkageType: ''
    returnType: int
    signature: int evhttp_is_request_connection_close(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:564,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/http.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - headers
    argTypes:
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 567
    functionName: evhttp_is_connection_keepalive
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_find_header
    - evutil_ascii_strncasecmp
    linkageType: ''
    returnType: int
    signature: int evhttp_is_connection_keepalive(struct evkeyvalq* headers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:573,1
    - Dst: evutil_date_rfc1123
      Src: /src/libevent/http.c:575,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - headers
    argTypes:
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 579
    functionName: evhttp_maybe_add_date_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_find_header
    - evutil_date_rfc1123
    - evhttp_add_header
    linkageType: ''
    returnType: void
    signature: void evhttp_maybe_add_date_header(struct evkeyvalq *headers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:587,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:588,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:590,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:591,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - headers
    - content_length
    argTypes:
    - struct evkeyvalq*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: evhttp_maybe_add_content_length_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EV_SIZE_ARG
    - evhttp_find_header
    - evutil_snprintf
    - evhttp_add_header
    linkageType: ''
    returnType: void
    signature: "void evhttp_maybe_add_content_length_header(struct evkeyvalq *headers,\n
      \   size_t content_length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_is_connection_keepalive
      Src: /src/libevent/http.c:604,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:605,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:607,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:607,1
    - Dst: evhttp_maybe_add_date_header
      Src: /src/libevent/http.c:614,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:621,1
    - Dst: evhttp_maybe_add_content_length_header
      Src: /src/libevent/http.c:630,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:632,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:638,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:641,1
    - Dst: evhttp_is_connection_close
      Src: /src/libevent/http.c:648,1
    - Dst: evhttp_remove_header
      Src: /src/libevent/http.c:649,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:650,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 652
    functionName: evhttp_make_header_response
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_is_connection_close
    - evhttp_is_connection_keepalive
    - evhttp_response_needs_body
    - evhttp_add_header
    - evhttp_maybe_add_date_header
    - evbuffer_add_printf
    - evbuffer_get_length
    - evhttp_maybe_add_content_length_header
    - evhttp_find_header
    - evhttp_remove_header
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: "void evhttp_make_header_response(struct evhttp_connection *evcon,\n
      \   struct evhttp_request *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ_VERSION_ATLEAST
      Src: /src/libevent/http.c:660,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:663,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - req
    - input
    argTypes:
    - struct evhttp_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 668
    functionName: evhttp_have_expect
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - REQ_VERSION_ATLEAST
    - evhttp_find_header
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: enum expect
    signature: enum expect evhttp_have_expect(struct evhttp_request *req, int input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:678,1
    - Dst: evhttp_make_header_request
      Src: /src/libevent/http.c:685,1
    - Dst: evhttp_make_header_response
      Src: /src/libevent/http.c:687,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:690,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:691,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:694,1
    - Dst: evhttp_have_expect
      Src: /src/libevent/http.c:696,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:697,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 704
    functionName: evhttp_make_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_buffer
    - evhttp_make_header_response
    - bufferevent_get_output
    - evbuffer_add
    - evhttp_have_expect
    - evhttp_make_header_request
    - evbuffer_add_printf
    - evbuffer_get_length
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void evhttp_make_header(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - new_max_headers_size
    argTypes:
    - struct evhttp_connection*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 714
    functionName: evhttp_connection_set_max_headers_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_max_headers_size(struct evhttp_connection
      *evcon,\n    ev_ssize_t new_max_headers_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - new_max_body_size
    argTypes:
    - struct evhttp_connection*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: evhttp_connection_set_max_body_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_max_body_size(struct evhttp_connection*
      evcon,\n    ev_ssize_t new_max_body_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:750,1
    - Dst: mm_free
      Src: /src/libevent/http.c:764,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:768,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - req
    - error
    argTypes:
    - struct evhttp_request*
    - enum evhttp_request_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 780
    functionName: evhttp_connection_incoming_fail
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_uri_free
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: int
    signature: "int evhttp_connection_incoming_fail(struct evhttp_request *req,\n
      \   enum evhttp_request_error error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 789
    functionName: evhttp_request_free_auto
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    linkageType: ''
    returnType: void
    signature: void evhttp_request_free_auto(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:794,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 796
    functionName: evhttp_request_free_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free_auto
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_request_free_(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - tv
    - timeout
    - def
    argTypes:
    - struct timeval*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 812
    functionName: evhttp_set_timeout_tv_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout_tv_(struct timeval *tv, const struct timeval
      *timeout, int def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tv
    - timeout
    - def
    argTypes:
    - struct timeval*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 828
    functionName: evhttp_set_timeout_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout_(struct timeval *tv, int timeout, int def)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/http.c:838,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:839,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:844,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:846,1
    - Dst: evhttp_connection_incoming_fail
      Src: /src/libevent/http.c:860,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:861,1
    - Dst: error_cb
      Src: /src/libevent/http.c:863,1
    - Dst: evhttp_request_free_
      Src: /src/libevent/http.c:881,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:884,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:887,1
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:888,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:892,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/http.c:899,1
    - Dst: error_cb
      Src: /src/libevent/http.c:903,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - evcon
    - error
    argTypes:
    - struct evhttp_connection*
    - enum evhttp_request_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 906
    functionName: evhttp_connection_fail_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - bufferevent_disable
    - evhttp_connection_reset_
    - EVUTIL_ASSERT
    - evhttp_connection_incoming_fail
    - error_cb
    - evhttp_connection_free
    - EVUTIL_SOCKET_ERROR
    - evhttp_connection_connect_
    - evhttp_request_free_
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_fail_(struct evhttp_connection *evcon,\n    enum
      evhttp_request_error error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bufev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 918
    functionName: evhttp_write_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_write_cb(struct bufferevent *bufev, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:930,1
    - Dst: evhttp_is_request_connection_close
      Src: /src/libevent/http.c:936,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:937,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:944,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:946,1
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:951,1
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:952,1
    - Dst: evhttp_request_dispatch
      Src: /src/libevent/http.c:954,1
    - Dst: evhttp_connection_start_detectclose
      Src: /src/libevent/http.c:960,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:981,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:990,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:991,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 993
    functionName: evhttp_connection_done
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_connected
    - evhttp_connection_start_detectclose
    - evhttp_request_free_auto
    - evhttp_connection_reset_
    - evhttp_is_request_connection_close
    - evhttp_request_dispatch
    - TAILQ_REMOVE
    - evhttp_connection_connect_
    - evhttp_connection_free
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_done(struct evhttp_connection *evcon)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1019,1
    - Dst: evbuffer_readln
      Src: /src/libevent/http.c:1032,1
    - Dst: strlen
      Src: /src/libevent/http.c:1038,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1041,1
    - Dst: isspace
      Src: /src/libevent/http.c:1045,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1050,1
    - Dst: evutil_strtoll
      Src: /src/libevent/http.c:1053,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1057,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1070,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/http.c:1094,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1099,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1100,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 62
    argCount: 2
    argNames:
    - req
    - buf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1109
    functionName: evhttp_handle_chunked_read
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_strtoll
    - evbuffer_readln
    - evbuffer_remove_buffer
    - evbuffer_drain
    - strlen
    - evbuffer_get_length
    - mm_free
    - event_debug
    - isspace
    linkageType: ''
    returnType: enum message_read_status
    signature: enum message_read_status evhttp_handle_chunked_read(struct evhttp_request
      *req, struct evbuffer *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1114,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/http.c:1116,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1119,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:1122,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:1123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1111
    functionDepth: 4
    functionLinenumber: 1111
    functionLinenumberEnd: 1130
    functionName: evhttp_read_trailer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - evhttp_parse_headers_
    - bufferevent_get_input
    - evhttp_connection_done
    - evhttp_connection_fail_
    linkageType: ''
    returnType: void
    signature: void evhttp_read_trailer(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1136,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1138,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1144,1
    - Dst: EV_I64_ARG
      Src: /src/libevent/http.c:1145,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1147,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1132
    functionDepth: 4
    functionLinenumber: 1132
    functionLinenumberEnd: 1150
    functionName: evhttp_lingering_close
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EV_I64_ARG
    - bufferevent_get_input
    - evbuffer_get_length
    - evbuffer_drain
    - event_debug
    - evhttp_connection_fail_
    linkageType: ''
    returnType: void
    signature: "void evhttp_lingering_close(struct evhttp_connection *evcon,\n\tstruct
      evhttp_request *req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_lingering_close
      Src: /src/libevent/http.c:1156,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1151
    functionDepth: 5
    functionLinenumber: 1151
    functionLinenumberEnd: 1159
    functionName: evhttp_lingering_fail
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_fail_
    - evhttp_lingering_close
    linkageType: ''
    returnType: void
    signature: "void evhttp_lingering_fail(struct evhttp_connection *evcon,\n\tstruct
      evhttp_request *req)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1164,1
    - Dst: evhttp_handle_chunked_read
      Src: /src/libevent/http.c:1167,1
    - Dst: evhttp_read_trailer
      Src: /src/libevent/http.c:1171,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1175,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1179,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:1184,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1192,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1193,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1197,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:1198,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1199,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1203,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/http.c:1209,1
    - Dst: evhttp_lingering_fail
      Src: /src/libevent/http.c:1218,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1222,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1226,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1227,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:1229,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:1235,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:1237,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1161
    functionDepth: 6
    functionLinenumber: 1161
    functionLinenumberEnd: 1240
    functionName: evhttp_read_body
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free_auto
    - evbuffer_add_buffer
    - bufferevent_disable
    - evhttp_read_trailer
    - evhttp_handle_chunked_read
    - evhttp_lingering_fail
    - evbuffer_remove_buffer
    - bufferevent_get_input
    - evbuffer_get_length
    - evbuffer_drain
    - evhttp_connection_done
    - evhttp_connection_fail_
    linkageType: ''
    returnType: void
    signature: void evhttp_read_body(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - evcon
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1244
    functionName: get_deferred_queue
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_deferred_queue(evcon)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1253,1
    - Dst: event_deferred_cb_cancel_
      Src: /src/libevent/http.c:1256,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:1256,1
    - Dst: evhttp_read_firstline
      Src: /src/libevent/http.c:1261,1
    - Dst: evhttp_read_header
      Src: /src/libevent/http.c:1266,1
    - Dst: evhttp_read_body
      Src: /src/libevent/http.c:1271,1
    - Dst: evhttp_read_trailer
      Src: /src/libevent/http.c:1276,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1284,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1285,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1286,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:1289,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:1292,1
    - Dst: event_errx
      Src: /src/libevent/http.c:1299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - bufev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1249
    functionDepth: 7
    functionLinenumber: 1249
    functionLinenumberEnd: 1302
    functionName: evhttp_read_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_read_firstline
    - event_deferred_cb_cancel_
    - evhttp_read_body
    - evhttp_connection_reset_
    - event_errx
    - bufferevent_get_input
    - evbuffer_get_length
    - event_debug
    - EV_SIZE_ARG
    - evhttp_read_trailer
    - get_deferred_queue
    - evhttp_read_header
    linkageType: ''
    returnType: void
    signature: void evhttp_read_cb(struct bufferevent *bufev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cb
    - data
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1311
    functionName: evhttp_deferred_read_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_deferred_read_cb(struct event_callback *cb, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1317,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:1318,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1319,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1321,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1325,1
    - Dst: evhttp_start_read_
      Src: /src/libevent/http.c:1331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1332
    functionName: evhttp_write_connectioncb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_start_read_
    - EVUTIL_ASSERT
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void evhttp_write_connectioncb(struct evhttp_connection *evcon, void
      *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:1344,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1352,1
    - Dst: evhttp_request_free_
      Src: /src/libevent/http.c:1353,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:1358,1
    - Dst: event_initialized
      Src: /src/libevent/http.c:1362,1
    - Dst: event_del
      Src: /src/libevent/http.c:1363,1
    - Dst: event_debug_unassign
      Src: /src/libevent/http.c:1364,1
    - Dst: event_deferred_cb_cancel_
      Src: /src/libevent/http.c:1367,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:1367,1
    - Dst: bufferevent_free
      Src: /src/libevent/http.c:1371,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1375,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1378,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1382,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1386
    functionName: evhttp_connection_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evhttp_connected
    - TAILQ_FIRST
    - event_debug_unassign
    - event_deferred_cb_cancel_
    - event_initialized
    - event_del
    - TAILQ_REMOVE
    - mm_free
    - bufferevent_free
    - evhttp_request_free_
    - get_deferred_queue
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_free(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1391
    functionName: evhttp_connection_free_on_completion
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_free_on_completion(struct evhttp_connection
      *evcon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1397,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1399,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:1400,1
    - Dst: event_warn
      Src: /src/libevent/http.c:1401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - evcon
    - address
    argTypes:
    - struct evhttp_connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1402
    functionName: evhttp_connection_set_local_address
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_warn
    - EVUTIL_ASSERT
    - mm_strdup
    - mm_free
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_local_address(struct evhttp_connection
      *evcon,\n    const char *address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - port
    argTypes:
    - struct evhttp_connection*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1404
    functionDepth: 1
    functionLinenumber: 1404
    functionLinenumberEnd: 1410
    functionName: evhttp_connection_set_local_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_local_port(struct evhttp_connection *evcon,\n
      \   ev_uint16_t port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1415,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1421,1
    - Dst: evhttp_connection_stop_detectclose
      Src: /src/libevent/http.c:1424,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1427,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:1432,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1412
    functionDepth: 4
    functionLinenumber: 1412
    functionLinenumberEnd: 1435
    functionName: evhttp_request_dispatch
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - evhttp_make_header
    - evhttp_write_buffer
    - EVUTIL_ASSERT
    - evhttp_connection_stop_detectclose
    linkageType: ''
    returnType: void
    signature: void evhttp_request_dispatch(struct evhttp_connection* evcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable_hard_
      Src: /src/libevent/http.c:1461,1
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:1464,1
    - Dst: bufferevent_replacefd
      Src: /src/libevent/http.c:1468,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1469,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:1472,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1473,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1474,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1475,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1476,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1478
    functionName: evhttp_connection_reset_hard_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connected
    - bufferevent_replacefd
    - EVUTIL_ASSERT
    - bufferevent_get_input
    - bufferevent_disable_hard_
    - evbuffer_drain
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_reset_hard_(struct evhttp_connection *evcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:1491,1
    - Dst: evhttp_connection_reset_hard_
      Src: /src/libevent/http.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - hard
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1499
    functionName: evhttp_connection_reset_
    functionSourceFile: /src/libevent/http.c
    functionUses: 3
    functionsReached:
    - evhttp_connection_reset_hard_
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_reset_(struct evhttp_connection *evcon, int
      hard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1506
    functionName: evhttp_connection_start_detectclose
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_start_detectclose(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1513
    functionName: evhttp_connection_stop_detectclose
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_stop_detectclose(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1522
    functionName: evhttp_connection_retry
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_connect_
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_retry(evutil_socket_t fd, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1528,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:1530,1
    - Dst: evtimer_assign
      Src: /src/libevent/http.c:1535,1
    - Dst: event_add
      Src: /src/libevent/http.c:1549,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:1560,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1561,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1562,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:1563,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:1564,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1568,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1569,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:1570,1
    - Dst: struct evhttp_request*::cb
      Src: /src/libevent/http.c:1574,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:1575,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1578,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:1580,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1524
    functionDepth: 4
    functionLinenumber: 1524
    functionLinenumberEnd: 1583
    functionName: evhttp_connection_cb_cleanup
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_request_free_auto
    - evhttp_connection_reset_
    - EVUTIL_ASSERT
    - evtimer_assign
    - TAILQ_INIT
    - TAILQ_REMOVE
    - evhttp_connection_free
    - event_add
    - TAILQ_INSERT_TAIL
    - struct evhttp_request*::cb
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_cb_cleanup(struct evhttp_connection *evcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1594,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:1600,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/http.c:1601,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1602,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1602,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/http.c:1603,1
    - Dst: evhttp_start_read_
      Src: /src/libevent/http.c:1605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1585
    functionDepth: 4
    functionLinenumber: 1585
    functionLinenumberEnd: 1607
    functionName: evhttp_connection_read_on_write_error
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_start_read_
    - evbuffer_freeze
    - evbuffer_get_length
    - evbuffer_drain
    - evbuffer_unfreeze
    - evhttp_connection_fail_
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_read_on_write_error(struct evhttp_connection
      *evcon,\n    struct evhttp_request *req)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1613,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1618,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:1621,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:1621,1
    - Dst: evhttp_connection_cb_cleanup
      Src: /src/libevent/http.c:1622,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:1631,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1651,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1656,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:1657,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1664,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:1667,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1673,1
    - Dst: evhttp_connection_read_on_write_error
      Src: /src/libevent/http.c:1677,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1683,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1683,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/http.c:1684,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:1684,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1689,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1692,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 3
    argNames:
    - bufev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1609
    functionDepth: 5
    functionLinenumber: 1609
    functionLinenumberEnd: 1694
    functionName: evhttp_error_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_connection_read_on_write_error
    - evhttp_connection_reset_
    - EVUTIL_ASSERT
    - bufferevent_getfd
    - bufferevent_get_input
    - EV_SOCK_ARG
    - evbuffer_get_length
    - evhttp_connection_free
    - event_debug
    - evhttp_connection_done
    - event_deferred_cb_schedule_
    - evhttp_connection_cb_cleanup
    - evhttp_connection_fail_
    - get_deferred_queue
    linkageType: ''
    returnType: void
    signature: void evhttp_error_cb(struct bufferevent *bufev, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_error_cb
      Src: /src/libevent/http.c:1713,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1718,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:1720,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:1720,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:1727,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:1733,1
    - Dst: evhttp_request_dispatch
      Src: /src/libevent/http.c:1737,1
    - Dst: evhttp_connection_cb_cleanup
      Src: /src/libevent/http.c:1741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - bufev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1699
    functionDepth: 6
    functionLinenumber: 1699
    functionLinenumberEnd: 1742
    functionName: evhttp_connection_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_set_timeouts
    - bufferevent_getfd
    - evhttp_request_dispatch
    - EV_SOCK_ARG
    - event_debug
    - evhttp_error_cb
    - evhttp_connection_cb_cleanup
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_cb(struct bufferevent *bufev, short what, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1755
    functionName: evhttp_valid_response_code
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_valid_response_code(int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/libevent/http.c:1762,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1764,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - version
    - req
    argTypes:
    - char*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1771
    functionName: evhttp_parse_http_version
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - sscanf
    - event_debug
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_http_version(const char *version, struct evhttp_request
      *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/libevent/http.c:1782,1
    - Dst: strsep
      Src: /src/libevent/http.c:1785,1
    - Dst: evhttp_parse_http_version
      Src: /src/libevent/http.c:1789,1
    - Dst: atoi
      Src: /src/libevent/http.c:1792,1
    - Dst: evhttp_valid_response_code
      Src: /src/libevent/http.c:1793,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1794,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1800,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:1801,1
    - Dst: event_warn
      Src: /src/libevent/http.c:1802,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - req
    - line
    argTypes:
    - struct evhttp_request*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1775
    functionDepth: 2
    functionLinenumber: 1775
    functionLinenumberEnd: 1807
    functionName: evhttp_parse_response_line
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - atoi
    - event_warn
    - strsep
    - evhttp_parse_http_version
    - mm_strdup
    - evhttp_valid_response_code
    - event_debug
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_response_line(struct evhttp_request *req, char *line)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:1826,1
    - Dst: strsep
      Src: /src/libevent/http.c:1830,1
    - Dst: strrchr
      Src: /src/libevent/http.c:1834,1
    - Dst: struct evhttp_request*::evcon::ext_method_cmp
      Src: /src/libevent/http.c:2015,1
    - Dst: strcmp
      Src: /src/libevent/http.c:2019,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2020,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2025,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2034,1
    - Dst: evhttp_parse_http_version
      Src: /src/libevent/http.c:2042,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2045,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2046,1
    - Dst: evhttp_uri_parse_authority
      Src: /src/libevent/http.c:2051,1
    - Dst: evhttp_uri_parse_with_flags
      Src: /src/libevent/http.c:2055,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 175
    argCount: 3
    argNames:
    - req
    - line
    - len
    argTypes:
    - struct evhttp_request*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 1811
    functionDepth: 2
    functionLinenumber: 1811
    functionLinenumberEnd: 2062
    functionName: evhttp_parse_request_line
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_warn
    - strsep
    - evhttp_uri_parse_with_flags
    - evhttp_parse_http_version
    - strlen
    - strrchr
    - mm_strdup
    - event_debug
    - struct evhttp_request*::evcon::ext_method_cmp
    - evhttp_uri_parse_authority
    - strcmp
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_request_line(struct evhttp_request *req, char *line,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - headers
    - key
    argTypes:
    - struct evkeyvalq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2075
    functionName: evhttp_find_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 7
    functionsReached:
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_find_header(const struct evkeyvalq *headers, const char *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2072
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(header, headers, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:2082,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:2084,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:2085,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2086,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2087,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - headers
    argTypes:
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2077
    functionDepth: 1
    functionLinenumber: 2077
    functionLinenumberEnd: 2090
    functionName: evhttp_clear_headers
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evhttp_clear_headers(struct evkeyvalq *headers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2103,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:2111,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2112,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2113,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - headers
    - key
    argTypes:
    - struct evkeyvalq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2117
    functionName: evhttp_remove_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - TAILQ_REMOVE
    - evutil_ascii_strcasecmp
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evhttp_remove_header(struct evkeyvalq *headers, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2105
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(header, headers, next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/libevent/http.c:2124,1
    - Dst: strspn
      Src: /src/libevent/http.c:2126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2132
    functionName: evhttp_header_is_valid_value
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - strspn
    linkageType: ''
    returnType: int
    signature: int evhttp_header_is_valid_value(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:2138,1
    - Dst: strchr
      Src: /src/libevent/http.c:2145,1
    - Dst: strchr
      Src: /src/libevent/http.c:2145,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2147,1
    - Dst: evhttp_header_is_valid_value
      Src: /src/libevent/http.c:2151,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2152,1
    - Dst: evhttp_add_header_internal
      Src: /src/libevent/http.c:2156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - headers
    - key
    - value
    argTypes:
    - struct evkeyvalq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2157
    functionName: evhttp_add_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 4
    functionsReached:
    - evhttp_header_is_valid_value
    - strchr
    - evhttp_add_header_internal
    - event_debug
    linkageType: ''
    returnType: int
    signature: "int evhttp_add_header(struct evkeyvalq *headers,\n    const char *key,
      const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:2163,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2165,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2168,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2169,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2170,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2173,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2174,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2175,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2176,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:2180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - headers
    - key
    - value
    argTypes:
    - struct evkeyvalq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2183
    functionName: evhttp_add_header_internal
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - mm_calloc
    - event_warn
    - mm_strdup
    - mm_free
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evhttp_add_header_internal(struct evkeyvalq *headers,\n    const
      char *key, const char *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_readln
      Src: /src/libevent/http.c:2203,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2206,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2213,1
    - Dst: evhttp_parse_request_line
      Src: /src/libevent/http.c:2221,1
    - Dst: evhttp_parse_response_line
      Src: /src/libevent/http.c:2225,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2232,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - req
    - buffer
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2195
    functionDepth: 3
    functionLinenumber: 2195
    functionLinenumberEnd: 2234
    functionName: evhttp_parse_firstline_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_response_line
    - evbuffer_readln
    - evhttp_parse_request_line
    - evbuffer_get_length
    - mm_free
    linkageType: ''
    returnType: enum message_read_status
    signature: enum message_read_status evhttp_parse_firstline_(struct evhttp_request
      *req, struct evbuffer *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_LAST
      Src: /src/libevent/http.c:2239,1
    - Dst: strlen
      Src: /src/libevent/http.c:2246,1
    - Dst: evutil_rtrim_lws_
      Src: /src/libevent/http.c:2251,1
    - Dst: strlen
      Src: /src/libevent/http.c:2253,1
    - Dst: mm_realloc
      Src: /src/libevent/http.c:2255,1
    - Dst: memcpy
      Src: /src/libevent/http.c:2260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - headers
    - line
    argTypes:
    - struct evkeyvalq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2264
    functionName: evhttp_append_to_last_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_rtrim_lws_
    - mm_realloc
    - strlen
    - TAILQ_LAST
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evhttp_append_to_last_header(struct evkeyvalq *headers, char *line)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_readln
      Src: /src/libevent/http.c:2275,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2289,1
    - Dst: evhttp_append_to_last_header
      Src: /src/libevent/http.c:2295,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2297,1
    - Dst: strsep
      Src: /src/libevent/http.c:2303,1
    - Dst: strspn
      Src: /src/libevent/http.c:2307,1
    - Dst: evutil_rtrim_lws_
      Src: /src/libevent/http.c:2308,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:2310,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2313,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2318,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2325,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - req
    - buffer
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2327
    functionName: evhttp_parse_headers_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evutil_rtrim_lws_
    - evbuffer_readln
    - strsep
    - evhttp_add_header
    - evbuffer_get_length
    - strspn
    - mm_free
    - evhttp_append_to_last_header
    linkageType: ''
    returnType: enum message_read_status
    signature: enum message_read_status evhttp_parse_headers_(struct evhttp_request
      *req, struct evbuffer* buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:2336,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:2337,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2342,1
    - Dst: evutil_strtoll
      Src: /src/libevent/http.c:2348,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2350,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2357,1
    - Dst: EV_I64_ARG
      Src: /src/libevent/http.c:2358,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:2359,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2359,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2329
    functionDepth: 2
    functionLinenumber: 2329
    functionLinenumberEnd: 2362
    functionName: evhttp_get_body_length
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_strtoll
    - EV_I64_ARG
    - evutil_ascii_strcasecmp
    - bufferevent_get_input
    - evbuffer_get_length
    - event_debug
    - EV_SIZE_ARG
    - evhttp_find_header
    linkageType: ''
    returnType: int
    signature: int evhttp_get_body_length(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_method_
      Src: /src/libevent/http.c:2369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - type
    argTypes:
    - struct evhttp_connection*
    - enum evhttp_cmd_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2364
    functionDepth: 2
    functionLinenumber: 2364
    functionLinenumberEnd: 2371
    functionName: evhttp_method_may_have_body_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_method_
    linkageType: ''
    returnType: int
    signature: int evhttp_method_may_have_body_(struct evhttp_connection *evcon, enum
      evhttp_cmd_type type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_method_may_have_body_
      Src: /src/libevent/http.c:2380,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:2381,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:2385,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2386,1
    - Dst: evhttp_get_body_length
      Src: /src/libevent/http.c:2390,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2391,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:2397,1
    - Dst: evhttp_have_expect
      Src: /src/libevent/http.c:2403,1
    - Dst: evhttp_lingering_fail
      Src: /src/libevent/http.c:2415,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2419,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2419,1
    - Dst: evhttp_send_continue
      Src: /src/libevent/http.c:2420,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:2423,1
    - Dst: evhttp_read_body
      Src: /src/libevent/http.c:2428,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2373
    functionDepth: 7
    functionLinenumber: 2373
    functionLinenumberEnd: 2430
    functionName: evhttp_get_body
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_read_body
    - evutil_ascii_strcasecmp
    - evhttp_lingering_fail
    - evhttp_method_may_have_body_
    - evhttp_get_body_length
    - bufferevent_get_input
    - evbuffer_get_length
    - evhttp_connection_done
    - evhttp_find_header
    - evhttp_send_continue
    - evhttp_send_error
    - evhttp_connection_fail_
    - evhttp_have_expect
    linkageType: ''
    returnType: void
    signature: void evhttp_get_body(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/http.c:2438,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2438,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2441,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2442,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:2442,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2443,1
    - Dst: evhttp_read_header
      Src: /src/libevent/http.c:2451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2432
    functionDepth: 4
    functionLinenumber: 2432
    functionLinenumberEnd: 2452
    functionName: evhttp_read_firstline
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_parse_firstline_
    - bufferevent_getfd
    - bufferevent_get_input
    - EV_SOCK_ARG
    - event_debug
    - evhttp_connection_fail_
    - evhttp_read_header
    linkageType: ''
    returnType: void
    signature: "void evhttp_read_firstline(struct evhttp_connection *evcon,\n\t\t
      \     struct evhttp_request *req)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:2459,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/http.c:2461,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2461,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2464,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2465,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2466,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2476,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2484,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2485,1
    - Dst: evhttp_get_body
      Src: /src/libevent/http.c:2486,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:2493,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:2494,1
    - Dst: evhttp_start_write_
      Src: /src/libevent/http.c:2495,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:2498,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2499,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:2501,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2503,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2505,1
    - Dst: evhttp_get_body
      Src: /src/libevent/http.c:2506,1
    - Dst: event_warnx
      Src: /src/libevent/http.c:2513,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2514,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2454
    functionDepth: 8
    functionLinenumber: 2454
    functionLinenumberEnd: 2519
    functionName: evhttp_read_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evbuffer_add_buffer
    - bufferevent_getfd
    - evhttp_response_needs_body
    - evhttp_start_write_
    - evhttp_parse_headers_
    - event_warnx
    - bufferevent_get_input
    - EV_SOCK_ARG
    - event_debug
    - evhttp_connection_done
    - evhttp_connection_fail_
    - bufferevent_get_output
    - evhttp_get_body
    linkageType: ''
    returnType: void
    signature: "void evhttp_read_header(struct evhttp_connection *evcon,\n\t\t   struct
      evhttp_request *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/http.c:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2531
    functionDepth: 1
    functionLinenumber: 2531
    functionLinenumberEnd: 2535
    functionName: evhttp_connection_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_base_new
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_new(const char *address, ev_uint16_t port)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - bev
    argTypes:
    - struct evhttp_connection*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2541
    functionDepth: 0
    functionLinenumber: 2541
    functionLinenumberEnd: 2547
    functionName: evhttp_connection_set_existing_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_connection_set_existing_(struct evhttp_connection *evcon,
      struct bufferevent* bev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:2554,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2555,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/http.c:2570,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2571,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:2576,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:2580,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/http.c:2584,1
    - Dst: bufferevent_base_set
      Src: /src/libevent/http.c:2585,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/http.c:2588,1
    - Dst: bufferevent_get_priority
      Src: /src/libevent/http.c:2590,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - base
    - bev
    argTypes:
    - struct event_base*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2601
      start: 2549
    functionDepth: 4
    functionLinenumber: 2549
    functionLinenumberEnd: 2601
    functionName: evhttp_connection_new_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - event_warn
    - bufferevent_get_base
    - bufferevent_socket_new
    - TAILQ_INIT
    - bufferevent_base_set
    - bufferevent_get_priority
    - evhttp_connection_free
    - event_deferred_cb_init_
    - bufferevent_setcb
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_new_(struct event_base *base, struct bufferevent* bev)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_new_
      Src: /src/libevent/http.c:2610,1
    - Dst: evhttp_connection_set_existing_
      Src: /src/libevent/http.c:2615,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2628,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - base
    - dnsbase
    - bev
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2603
    functionDepth: 5
    functionLinenumber: 2603
    functionLinenumberEnd: 2630
    functionName: evhttp_connection_base_bufferevent_reuse_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_free
    - evhttp_connection_set_existing_
    - evhttp_connection_new_
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_base_bufferevent_reuse_new(struct event_base *base, struct
      evdns_base *dnsbase, struct bufferevent* bev)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:2638,1
    - Dst: member_size
      Src: /src/libevent/http.c:2638,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2639,1
    - Dst: evhttp_connection_new_
      Src: /src/libevent/http.c:2643,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2647,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2648,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - base
    - bev
    - unixsocket
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2633
    functionDepth: 5
    functionLinenumber: 2633
    functionLinenumberEnd: 2659
    functionName: evhttp_connection_base_bufferevent_unix_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_warn
    - strlen
    - mm_strdup
    - member_size
    - evhttp_connection_new_
    - evhttp_connection_free
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_base_bufferevent_unix_new(struct event_base *base, struct
      bufferevent* bev, const char *unixsocket)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:2668,1
    - Dst: evhttp_connection_new_
      Src: /src/libevent/http.c:2670,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2674,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2675,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - base
    - dnsbase
    - bev
    - address
    - port
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - struct bufferevent*
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2662
    functionDepth: 5
    functionLinenumber: 2662
    functionLinenumberEnd: 2686
    functionName: evhttp_connection_base_bufferevent_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_warn
    - mm_strdup
    - evhttp_connection_free
    - evhttp_connection_new_
    - event_debug
    linkageType: ''
    returnType: struct evhttp_connection
    signature: "struct evhttp_connection *\nevhttp_connection_base_bufferevent_new(struct
      event_base *base, struct evdns_base *dnsbase, struct bufferevent* bev,\n    const
      char *address, unsigned short port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2689
    functionDepth: 0
    functionLinenumber: 2689
    functionLinenumberEnd: 2692
    functionName: evhttp_connection_get_bufferevent
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bufferevent
    signature: struct bufferevent * evhttp_connection_get_bufferevent(struct evhttp_connection
      *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2694
    functionDepth: 0
    functionLinenumber: 2694
    functionLinenumberEnd: 2698
    functionName: evhttp_connection_get_server
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_connection_get_server(struct evhttp_connection *evcon)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/http.c:2704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - base
    - dnsbase
    - address
    - port
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2700
    functionDepth: 6
    functionLinenumber: 2700
    functionLinenumberEnd: 2705
    functionName: evhttp_connection_base_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_connection_base_bufferevent_new
    linkageType: ''
    returnType: struct evhttp_connection
    signature: "struct evhttp_connection *\nevhttp_connection_base_new(struct event_base
      *base, struct evdns_base *dnsbase,\n    const char *address, ev_uint16_t port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - family
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2707
    functionDepth: 0
    functionLinenumber: 2707
    functionLinenumberEnd: 2711
    functionName: evhttp_connection_set_family
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_family(struct evhttp_connection *evcon,\n\tint
      family)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - evcon
    - flags
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2713
    functionDepth: 0
    functionLinenumber: 2713
    functionLinenumberEnd: 2727
    functionName: evhttp_connection_set_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int evhttp_connection_set_flags(struct evhttp_connection *evcon,\n\tint
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - cmp
    argTypes:
    - struct evhttp_connection*
    - evhttp_ext_method_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2734
    functionName: evhttp_connection_set_ext_method_cmp
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_ext_method_cmp(struct evhttp_connection
      *evcon,\n\tevhttp_ext_method_cb cmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2740,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2741,1
    - Dst: bufferevent_base_set
      Src: /src/libevent/http.c:2743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - base
    argTypes:
    - struct evhttp_connection*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2736
    functionDepth: 1
    functionLinenumber: 2736
    functionLinenumberEnd: 2744
    functionName: evhttp_connection_set_base
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_base_set
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_base(struct evhttp_connection *evcon,\n
      \   struct event_base *base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:2755,1
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:2756,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - timeout
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2746
    functionDepth: 2
    functionLinenumber: 2746
    functionLinenumberEnd: 2759
    functionName: evhttp_connection_set_timeout
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_timeout(struct evhttp_connection *evcon,\n
      \   int timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2769,1
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2770,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2760
    functionDepth: 2
    functionLinenumber: 2760
    functionLinenumberEnd: 2773
    functionName: evhttp_connection_set_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_timeout_tv(struct evhttp_connection *evcon,\n
      \   const struct timeval* tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2778,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2774
    functionDepth: 2
    functionLinenumber: 2774
    functionLinenumberEnd: 2782
    functionName: evhttp_connection_set_connect_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_connect_timeout_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2787,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2783
    functionDepth: 2
    functionLinenumber: 2783
    functionLinenumberEnd: 2791
    functionName: evhttp_connection_set_read_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_read_timeout_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2796,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2792
    functionDepth: 2
    functionLinenumber: 2792
    functionLinenumberEnd: 2800
    functionName: evhttp_connection_set_write_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_write_timeout_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:2809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2812
      start: 2802
    functionDepth: 1
    functionLinenumber: 2802
    functionLinenumberEnd: 2812
    functionName: evhttp_connection_set_initial_retry_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_initial_retry_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - retry_max
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2819
    functionName: evhttp_connection_set_retries
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_retries(struct evhttp_connection *evcon,\n
      \   int retry_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - cbarg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2821
    functionDepth: 0
    functionLinenumber: 2821
    functionLinenumberEnd: 2827
    functionName: evhttp_connection_set_closecb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_closecb(struct evhttp_connection *evcon,\n
      \   void (*cb)(struct evhttp_connection *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - evcon
    - address
    - port
    argTypes:
    - struct evhttp_connection*
    - char**
    - ev_uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2829
    functionDepth: 0
    functionLinenumber: 2829
    functionLinenumberEnd: 2835
    functionName: evhttp_connection_get_peer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_get_peer(struct evhttp_connection *evcon,\n
      \   const char **address, ev_uint16_t *port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_get_conn_address_
      Src: /src/libevent/http.c:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2841
    functionName: evhttp_connection_get_addr
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_get_conn_address_
    linkageType: ''
    returnType: struct sockaddr
    signature: 'struct sockaddr *

      evhttp_connection_get_addr(struct evhttp_connection *evcon)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_addr
      Src: /src/libevent/http.c:2848,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:2863,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2865,1
    - Dst: bind_socket
      Src: /src/libevent/http.c:2869,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2872,1
    - Dst: bufferevent_replacefd
      Src: /src/libevent/http.c:2877,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:2882,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2887,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:2890,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/http.c:2902,1
    - Dst: strcpy
      Src: /src/libevent/http.c:2908,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/http.c:2909,1
    - Dst: bufferevent_socket_connect_hostname
      Src: /src/libevent/http.c:2913,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2843
    functionDepth: 3
    functionLinenumber: 2843
    functionLinenumberEnd: 2915
    functionName: evhttp_connection_connect_
    functionSourceFile: /src/libevent/http.c
    functionUses: 3
    functionsReached:
    - strcpy
    - bufferevent_replacefd
    - evhttp_connection_reset_
    - bufferevent_set_timeouts
    - EVUTIL_ASSERT
    - bufferevent_enable
    - bufferevent_socket_connect_hostname
    - bufferevent_socket_connect
    - evhttp_connection_get_addr
    - event_debug
    - bind_socket
    - bufferevent_setcb
    linkageType: ''
    returnType: int
    signature: int evhttp_connection_connect_(struct evhttp_connection *evcon)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/http.c:2947,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2948,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2949,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:2950,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2960,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2962,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:2964,1
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:2971,1
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:2972,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:2978,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:2988,1
    - Dst: evhttp_request_dispatch
      Src: /src/libevent/http.c:2989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - evcon
    - req
    - type
    - uri
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    - enum evhttp_cmd_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2938
    functionDepth: 5
    functionLinenumber: 2938
    functionLinenumberEnd: 2992
    functionName: evhttp_make_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connected
    - TAILQ_FIRST
    - evhttp_request_free_auto
    - event_warn
    - EVUTIL_ASSERT
    - evhttp_request_dispatch
    - mm_strdup
    - evhttp_connection_connect_
    - mm_free
    - TAILQ_REMOVE
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evhttp_make_request(struct evhttp_connection *evcon,\n    struct
      evhttp_request *req,\n    enum evhttp_cmd_type type, const char *uri)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:3000,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:3004,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:3013,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:3017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 2994
    functionDepth: 4
    functionLinenumber: 2994
    functionLinenumberEnd: 3018
    functionName: evhttp_cancel_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_request_free_auto
    - evhttp_connection_fail_
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_cancel_request(struct evhttp_request *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:3028,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:3029,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:3033,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3041,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:3041,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/http.c:3042,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:3042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 3025
    functionDepth: 1
    functionLinenumber: 3025
    functionLinenumberEnd: 3045
    functionName: evhttp_start_read_
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - bufferevent_disable
    - bufferevent_enable
    - bufferevent_get_input
    - get_deferred_queue
    - evbuffer_get_length
    - event_deferred_cb_schedule_
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void evhttp_start_read_(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:3050,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:3051,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3047
    functionDepth: 2
    functionLinenumber: 3047
    functionLinenumberEnd: 3055
    functionName: evhttp_start_write_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - bufferevent_enable
    - bufferevent_disable
    - evhttp_write_buffer
    linkageType: ''
    returnType: void
    signature: void evhttp_start_write_(struct evhttp_connection *evcon)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:3061,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:3062,1
    - Dst: struct evhttp_request*::on_complete_cb
      Src: /src/libevent/http.c:3065,1
    - Dst: REQ_VERSION_BEFORE
      Src: /src/libevent/http.c:3069,1
    - Dst: evhttp_is_connection_keepalive
      Src: /src/libevent/http.c:3070,1
    - Dst: evhttp_is_request_connection_close
      Src: /src/libevent/http.c:3071,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:3073,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3074,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3077,1
    - Dst: evhttp_associate_new_request_with_connection
      Src: /src/libevent/http.c:3082,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3083,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3057
    functionDepth: 4
    functionLinenumber: 3057
    functionLinenumberEnd: 3085
    functionName: evhttp_send_done
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_request_free
    - evhttp_is_connection_keepalive
    - evhttp_is_request_connection_close
    - EVUTIL_ASSERT
    - REQ_VERSION_BEFORE
    - evhttp_associate_new_request_with_connection
    - struct evhttp_request*::on_complete_cb
    - TAILQ_REMOVE
    - evhttp_connection_free
    linkageType: ''
    returnType: void
    signature: void evhttp_send_done(struct evhttp_connection *evcon, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:3099,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3104,1
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3108,1
    - Dst: evhttp_response_phrase_internal
      Src: /src/libevent/http.c:3114,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:3116,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3116,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:3117,1
    - Dst: evhttp_send_page_
      Src: /src/libevent/http.c:3122,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:3124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - req
    - error
    - reason
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3090
    functionDepth: 4
    functionLinenumber: 3090
    functionLinenumberEnd: 3126
    functionName: evhttp_send_error
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_send_page_
    - evbuffer_new
    - evhttp_response_phrase_internal
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - evhttp_connection_free
    - evbuffer_drain
    - evhttp_response_code_
    linkageType: ''
    returnType: void
    signature: void evhttp_send_error(struct evhttp_request *req, int error, const
      char *reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_htmlescape
      Src: /src/libevent/http.c:3137,1
    - Dst: strlen
      Src: /src/libevent/http.c:3140,1
    - Dst: strlen
      Src: /src/libevent/http.c:3140,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3141,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:3145,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:3147,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3150,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - req
    - url
    argTypes:
    - struct evhttp_request*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3127
    functionDepth: 5
    functionLinenumber: 3127
    functionLinenumberEnd: 3154
    functionName: evhttp_send_notfound
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - evhttp_htmlescape
    - strlen
    - evhttp_send_error
    - mm_free
    - evutil_snprintf
    linkageType: ''
    returnType: void
    signature: void evhttp_send_notfound(struct evhttp_request *req, const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3165,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:3169,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:3169,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:3176,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:3179,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - req
    - databuf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3159
    functionDepth: 4
    functionLinenumber: 3159
    functionLinenumberEnd: 3182
    functionName: evhttp_send
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_make_header
    - evhttp_request_free
    - evbuffer_add_buffer
    - evhttp_write_buffer
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void evhttp_send(struct evhttp_request *req, struct evbuffer *databuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3188,1
    - Dst: evhttp_send
      Src: /src/libevent/http.c:3190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - req
    - code
    - reason
    - databuf
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3191
      start: 3184
    functionDepth: 5
    functionLinenumber: 3184
    functionLinenumberEnd: 3191
    functionName: evhttp_send_reply
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_send
    - evhttp_response_code_
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_reply(struct evhttp_request *req, int code, const
      char *reason,\n    struct evbuffer *databuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3197,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:3202,1
    - Dst: REQ_VERSION_ATLEAST
      Src: /src/libevent/http.c:3203,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:3204,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:3210,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:3216,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - req
    - code
    - reason
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3193
    functionDepth: 4
    functionLinenumber: 3193
    functionLinenumberEnd: 3218
    functionName: evhttp_send_reply_start
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_header
    - evhttp_write_buffer
    - evhttp_response_needs_body
    - evhttp_add_header
    - REQ_VERSION_ATLEAST
    - evhttp_find_header
    - evhttp_response_code_
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_reply_start(struct evhttp_request *req, int code,\n
      \   const char *reason)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:3230,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3232,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:3234,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:3237,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3238,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:3240,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3242,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - req
    - databuf
    - arg
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3220
    functionDepth: 2
    functionLinenumber: 3220
    functionLinenumberEnd: 3245
    functionName: evhttp_send_reply_chunk_with_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_buffer
    - evhttp_write_buffer
    - evbuffer_add
    - evhttp_response_needs_body
    - evbuffer_add_printf
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_reply_chunk_with_cb(struct evhttp_request *req, struct
      evbuffer *databuf,\n    void (*cb)(struct evhttp_connection *, void *), void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3253,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:3258,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3259,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:3261,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3267,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3270
      start: 3247
    functionDepth: 4
    functionLinenumber: 3247
    functionLinenumberEnd: 3270
    functionName: evhttp_start_ws_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_header
    - evhttp_request_free
    - evhttp_write_buffer
    - TAILQ_REMOVE
    - evhttp_connection_free
    - evhttp_response_code_
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      evhttp_start_ws_(struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_reply_chunk_with_cb
      Src: /src/libevent/http.c:3275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - databuf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3276
      start: 3272
    functionDepth: 3
    functionLinenumber: 3272
    functionLinenumberEnd: 3276
    functionName: evhttp_send_reply_chunk
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_chunk_with_cb
    linkageType: ''
    returnType: void
    signature: void evhttp_send_reply_chunk(struct evhttp_request *req, struct evbuffer
      *databuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3284,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:3288,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3294,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3295,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3297,1
    - Dst: evhttp_send_done
      Src: /src/libevent/http.c:3299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3277
    functionDepth: 5
    functionLinenumber: 3277
    functionLinenumberEnd: 3305
    functionName: evhttp_send_reply_end
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - evhttp_write_buffer
    - evbuffer_add
    - evhttp_send_done
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void evhttp_send_reply_end(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3369
    functionDepth: 0
    functionLinenumber: 3369
    functionLinenumberEnd: 3370
    functionName: MEMBERSOF
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMBERSOF(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEMBERSOF
      Src: /src/libevent/http.c:3387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3380
    functionDepth: 1
    functionLinenumber: 3380
    functionLinenumberEnd: 3395
    functionName: evhttp_response_phrase_internal
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - MEMBERSOF
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_response_phrase_internal(int code)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/http.c:3403,1
    - Dst: evhttp_response_phrase_internal
      Src: /src/libevent/http.c:3405,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:3406,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - req
    - code
    - reason
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3397
    functionDepth: 2
    functionLinenumber: 3397
    functionLinenumberEnd: 3411
    functionName: evhttp_response_code_
    functionSourceFile: /src/libevent/http.c
    functionUses: 4
    functionsReached:
    - event_warn
    - evhttp_response_phrase_internal
    - mm_strdup
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evhttp_response_code_(struct evhttp_request *req, int code, const
      char *reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3422,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:3424,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:3425,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:3426,1
    - Dst: evhttp_send
      Src: /src/libevent/http.c:3428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - req
    - databuf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3429
      start: 3413
    functionDepth: 5
    functionLinenumber: 3413
    functionLinenumberEnd: 3429
    functionName: evhttp_send_page_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_send
    - evhttp_add_header
    - evhttp_response_code_
    - evhttp_clear_headers
    linkageType: ''
    returnType: void
    signature: void evhttp_send_page_(struct evhttp_request *req, struct evbuffer
      *databuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3454
    functionDepth: 0
    functionLinenumber: 3454
    functionLinenumberEnd: 3456
    functionName: CHAR_IS_UNRESERVED
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR_IS_UNRESERVED(c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:3464,1
    - Dst: strlen
      Src: /src/libevent/http.c:3479,1
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:3494,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3495,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3497,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:3499,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3503,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3504,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3504,1
    - Dst: evbuffer_remove
      Src: /src/libevent/http.c:3507,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3507,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:3511,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - uri
    - len
    - space_as_plus
    argTypes:
    - char*
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3461
    functionDepth: 1
    functionLinenumber: 3461
    functionLinenumberEnd: 3513
    functionName: evhttp_uriencode
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - CHAR_IS_UNRESERVED
    - evbuffer_new
    - evbuffer_add
    - strlen
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - evbuffer_remove
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uriencode(const char *uri, ev_ssize_t len, int space_as_plus)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uriencode
      Src: /src/libevent/http.c:3518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3515
    functionDepth: 2
    functionLinenumber: 3515
    functionLinenumberEnd: 3519
    functionName: evhttp_encode_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_uriencode
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_encode_uri(const char *str)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:3544,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:3544,1
    - Dst: strtol
      Src: /src/libevent/http.c:3549,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - uri
    - length
    - ret
    - decode_plus_ctl
    argTypes:
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3557
      start: 3527
    functionDepth: 0
    functionLinenumber: 3527
    functionLinenumberEnd: 3557
    functionName: evhttp_decode_uri_internal
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strtol
    - EVUTIL_ISXDIGIT_
    linkageType: ''
    returnType: int
    signature: "int evhttp_decode_uri_internal(\n\tconst char *uri, size_t length,
      char *ret, int decode_plus_ctl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3565,1
    - Dst: strlen
      Src: /src/libevent/http.c:3565,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3566,1
    - Dst: strlen
      Src: /src/libevent/http.c:3567,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3571,1
    - Dst: strlen
      Src: /src/libevent/http.c:3571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3560
    functionDepth: 1
    functionLinenumber: 3560
    functionLinenumberEnd: 3575
    functionName: evhttp_decode_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_decode_uri_internal
    - strlen
    - mm_malloc
    - event_warn
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_decode_uri(const char *uri)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3583,1
    - Dst: strlen
      Src: /src/libevent/http.c:3583,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3584,1
    - Dst: strlen
      Src: /src/libevent/http.c:3585,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3589,1
    - Dst: strlen
      Src: /src/libevent/http.c:3589,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:3593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - uri
    - decode_plus
    - size_out
    argTypes:
    - char*
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3577
    functionDepth: 1
    functionLinenumber: 3577
    functionLinenumberEnd: 3598
    functionName: evhttp_uridecode
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - event_warn
    - EVUTIL_ASSERT
    - evhttp_decode_uri_internal
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uridecode(const char *uri, int decode_plus, size_t *size_out)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:3615,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/http.c:3618,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/http.c:3621,1
    - Dst: strlen
      Src: /src/libevent/http.c:3627,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:3632,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3633,1
    - Dst: strsep
      Src: /src/libevent/http.c:3642,1
    - Dst: strsep
      Src: /src/libevent/http.c:3643,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3654,1
    - Dst: strlen
      Src: /src/libevent/http.c:3654,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3655,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3658,1
    - Dst: strlen
      Src: /src/libevent/http.c:3658,1
    - Dst: event_debug
      Src: /src/libevent/http.c:3660,1
    - Dst: evhttp_remove_header
      Src: /src/libevent/http.c:3662,1
    - Dst: evhttp_add_header_internal
      Src: /src/libevent/http.c:3663,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3664,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:3672,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3675,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:3677,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 4
    argNames:
    - str
    - headers
    - is_whole_uri
    - flags
    argTypes:
    - char*
    - struct evkeyvalq*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3679
      start: 3605
    functionDepth: 2
    functionLinenumber: 3605
    functionLinenumberEnd: 3679
    functionName: evhttp_parse_query_impl
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_uri_free
    - mm_malloc
    - event_warn
    - strsep
    - evhttp_clear_headers
    - evhttp_decode_uri_internal
    - strlen
    - TAILQ_INIT
    - evhttp_uri_get_query
    - mm_strdup
    - event_debug
    - mm_free
    - evhttp_uri_parse
    - evhttp_remove_header
    - evhttp_add_header_internal
    linkageType: ''
    returnType: int
    signature: "int evhttp_parse_query_impl(const char *str, struct evkeyvalq *headers,\n
      \   int is_whole_uri, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_query_impl
      Src: /src/libevent/http.c:3684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - headers
    argTypes:
    - char*
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3681
    functionDepth: 3
    functionLinenumber: 3681
    functionLinenumberEnd: 3685
    functionName: evhttp_parse_query
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query_impl
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_query(const char *uri, struct evkeyvalq *headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_query_impl
      Src: /src/libevent/http.c:3689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - headers
    argTypes:
    - char*
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3686
    functionDepth: 3
    functionLinenumber: 3686
    functionLinenumberEnd: 3690
    functionName: evhttp_parse_query_str
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query_impl
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_query_impl
      Src: /src/libevent/http.c:3694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - uri
    - headers
    - flags
    argTypes:
    - char*
    - struct evkeyvalq*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3695
      start: 3691
    functionDepth: 3
    functionLinenumber: 3691
    functionLinenumberEnd: 3695
    functionName: evhttp_parse_query_str_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query_impl
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_query_str_flags(const char *uri, struct evkeyvalq
      *headers, unsigned flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/http.c:3706,1
    - Dst: strlen
      Src: /src/libevent/http.c:3707,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3708,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3710,1
    - Dst: strcmp
      Src: /src/libevent/http.c:3714,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3715,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - callbacks
    - req
    argTypes:
    - struct httpcbq*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3722
      start: 3697
    functionDepth: 1
    functionLinenumber: 3697
    functionLinenumberEnd: 3722
    functionName: evhttp_dispatch_callback
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - evhttp_uri_get_path
    - evhttp_decode_uri_internal
    - strlen
    - mm_free
    - strcmp
    linkageType: ''
    returnType: struct evhttp_cb
    signature: 'struct evhttp_cb *

      evhttp_dispatch_callback(struct httpcbq *callbacks, struct evhttp_request *req)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/http.c:3714,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3718
      start: 3713
    functionDepth: 1
    functionLinenumber: 3713
    functionLinenumberEnd: 3718
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - mm_free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(cb, callbacks, next)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prefix_suffix_match
      Src: /src/libevent/http.c:3737,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/http.c:3746,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/http.c:3746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - pattern
    - name
    - ignorecase
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3753
      start: 3725
    functionDepth: 1
    functionLinenumber: 3725
    functionLinenumberEnd: 3753
    functionName: prefix_suffix_match
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - prefix_suffix_match
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: int
    signature: int prefix_suffix_match(const char *pattern, const char *name, int
      ignorecase)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3768,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:3770,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3779,1
    - Dst: evhttp_find_alias
      Src: /src/libevent/http.c:3780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - http
    - outhttp
    - hostname
    argTypes:
    - struct evhttp*
    - struct evhttp**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3761
    functionDepth: 1
    functionLinenumber: 3761
    functionLinenumberEnd: 3785
    functionName: evhttp_find_alias
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_find_alias
    - TAILQ_FOREACH
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: int
    signature: "int evhttp_find_alias(struct evhttp *http, struct evhttp **outhttp,\n\t\t
      \ const char *hostname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_alias
      Src: /src/libevent/http.c:3806,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3811,1
    - Dst: prefix_suffix_match
      Src: /src/libevent/http.c:3812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - http
    - outhttp
    - hostname
    argTypes:
    - struct evhttp*
    - struct evhttp**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3825
      start: 3798
    functionDepth: 2
    functionLinenumber: 3798
    functionLinenumberEnd: 3825
    functionName: evhttp_find_vhost
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_find_alias
    - prefix_suffix_match
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: "int evhttp_find_vhost(struct evhttp *http, struct evhttp **outhttp,\n\t\t
      \ const char *hostname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:3837,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:3840,1
    - Dst: event_debug
      Src: /src/libevent/http.c:3845,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:3847,1
    - Dst: evhttp_request_get_host
      Src: /src/libevent/http.c:3852,1
    - Dst: evhttp_find_vhost
      Src: /src/libevent/http.c:3854,1
    - Dst: evhttp_dispatch_callback
      Src: /src/libevent/http.c:3857,1
    - Dst: evhttp_send_notfound
      Src: /src/libevent/http.c:3867,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3868
      start: 3827
    functionDepth: 6
    functionLinenumber: 3827
    functionLinenumberEnd: 3868
    functionName: evhttp_handle_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_host
    - bufferevent_disable
    - evhttp_send_notfound
    - evhttp_find_vhost
    - evhttp_dispatch_callback
    - event_debug
    - evhttp_send_error
    linkageType: ''
    returnType: void
    signature: void evhttp_handle_request(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct evhttp_bound_socket*::bevcb
      Src: /src/libevent/http.c:3880,1
    - Dst: evhttp_get_request
      Src: /src/libevent/http.c:3882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - listener
    - nfd
    - peer_sa
    - peer_socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3871
    functionDepth: 1
    functionLinenumber: 3871
    functionLinenumberEnd: 3883
    functionName: accept_socket_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - struct evhttp_bound_socket*::bevcb
    - evhttp_get_request
    linkageType: ''
    returnType: void
    signature: void accept_socket_cb(struct evconnlistener *listener, evutil_socket_t
      nfd, struct sockaddr *peer_sa, int peer_socklen, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/http.c:3889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - http
    - address
    - port
    argTypes:
    - struct evhttp*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3893
      start: 3885
    functionDepth: 1
    functionLinenumber: 3885
    functionLinenumberEnd: 3893
    functionName: evhttp_bind_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_bind_socket_with_handle
    linkageType: ''
    returnType: int
    signature: int evhttp_bind_socket(struct evhttp *http, const char *address, ev_uint16_t
      port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bind_socket
      Src: /src/libevent/http.c:3902,1
    - Dst: listen
      Src: /src/libevent/http.c:3905,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/http.c:3906,1
    - Dst: event_sock_warn
      Src: /src/libevent/http.c:3907,1
    - Dst: evutil_closesocket
      Src: /src/libevent/http.c:3908,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/http.c:3909,1
    - Dst: evhttp_accept_socket_with_handle
      Src: /src/libevent/http.c:3913,1
    - Dst: event_debug
      Src: /src/libevent/http.c:3916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - http
    - address
    - port
    argTypes:
    - struct evhttp*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3895
    functionDepth: 1
    functionLinenumber: 3895
    functionLinenumberEnd: 3922
    functionName: evhttp_bind_socket_with_handle
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - EVUTIL_SOCKET_ERROR
    - evhttp_accept_socket_with_handle
    - event_sock_warn
    - evutil_closesocket
    - listen
    - bind_socket
    - event_debug
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: struct evhttp_bound_socket
    signature: 'struct evhttp_bound_socket *

      evhttp_bind_socket_with_handle(struct evhttp *http, const char *address, ev_uint16_t
      port)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_accept_socket_with_handle
      Src: /src/libevent/http.c:3928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - fd
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3924
    functionDepth: 1
    functionLinenumber: 3924
    functionLinenumberEnd: 3932
    functionName: evhttp_accept_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_accept_socket_with_handle
    linkageType: ''
    returnType: int
    signature: int evhttp_accept_socket(struct evhttp *http, evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3941,1
    - Dst: function
      Src: /src/libevent/http.c:3942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - http
    - function
    - argument
    argTypes:
    - struct evhttp*
    - evhttp_bound_socket_foreach_fn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3943
      start: 3934
    functionDepth: 0
    functionLinenumber: 3934
    functionLinenumberEnd: 3943
    functionName: evhttp_foreach_bound_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - function
    linkageType: ''
    returnType: void
    signature: "void evhttp_foreach_bound_socket(struct evhttp *http,\n                            evhttp_bound_socket_foreach_fn
      *function,\n                            void *argument)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_new
      Src: /src/libevent/http.c:3953,1
    - Dst: evhttp_bind_listener
      Src: /src/libevent/http.c:3960,1
    - Dst: evconnlistener_free
      Src: /src/libevent/http.c:3962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - http
    - fd
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3945
    functionDepth: 1
    functionLinenumber: 3945
    functionLinenumberEnd: 3966
    functionName: evhttp_accept_socket_with_handle
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evconnlistener_new
    - evconnlistener_free
    - evhttp_bind_listener
    linkageType: ''
    returnType: struct evhttp_bound_socket
    signature: 'struct evhttp_bound_socket *

      evhttp_accept_socket_with_handle(struct evhttp *http, evutil_socket_t fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3973,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:3980,1
    - Dst: evconnlistener_set_cb
      Src: /src/libevent/http.c:3982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - http
    - listener
    argTypes:
    - struct evhttp*
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 3984
    functionName: evhttp_bind_listener
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - mm_malloc
    - evconnlistener_set_cb
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct evhttp_bound_socket
    signature: 'struct evhttp_bound_socket *

      evhttp_bind_listener(struct evhttp *http, struct evconnlistener *listener)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/http.c:3989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bound
    argTypes:
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3990
      start: 3986
    functionDepth: 1
    functionLinenumber: 3986
    functionLinenumberEnd: 3990
    functionName: evhttp_bound_socket_get_fd
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evconnlistener_get_fd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evhttp_bound_socket_get_fd(struct evhttp_bound_socket
      *bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bound
    argTypes:
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3996
      start: 3992
    functionDepth: 0
    functionLinenumber: 3992
    functionLinenumberEnd: 3996
    functionName: evhttp_bound_socket_get_listener
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evconnlistener
    signature: 'struct evconnlistener *

      evhttp_bound_socket_get_listener(struct evhttp_bound_socket *bound)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bound
    - (*cb)(struct event_base *, void *)
    - cbarg
    argTypes:
    - struct evhttp_bound_socket*
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4004
      start: 3998
    functionDepth: 0
    functionLinenumber: 3998
    functionLinenumberEnd: 4004
    functionName: evhttp_bound_set_bevcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_bound_set_bevcb(struct evhttp_bound_socket *bound,\n    struct
      bufferevent* (*cb)(struct event_base *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4009,1
    - Dst: evconnlistener_free
      Src: /src/libevent/http.c:4010,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - http
    - bound
    argTypes:
    - struct evhttp*
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 4006
    functionDepth: 1
    functionLinenumber: 4006
    functionLinenumberEnd: 4012
    functionName: evhttp_del_accept_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evconnlistener_free
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evhttp_del_accept_socket(struct evhttp *http, struct evhttp_bound_socket
      *bound)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4019,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4020,1
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:4024,1
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:4025,1
    - Dst: evhttp_set_max_headers_size
      Src: /src/libevent/http.c:4027,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/http.c:4028,1
    - Dst: evhttp_set_default_content_type
      Src: /src/libevent/http.c:4029,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/http.c:4030,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4037,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4038,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4039,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4040,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4041,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4045
    functionName: evhttp_new_object
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - event_warn
    - evhttp_set_allowed_methods
    - TAILQ_INIT
    - evutil_timerclear
    - evhttp_set_max_body_size
    - evhttp_set_default_content_type
    - evhttp_set_max_headers_size
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_new_object(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new_object
      Src: /src/libevent/http.c:4052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4047
    functionDepth: 2
    functionLinenumber: 4047
    functionLinenumberEnd: 4058
    functionName: evhttp_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_new_object
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_new(struct event_base *base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new_object
      Src: /src/libevent/http.c:4069,1
    - Dst: evhttp_bind_socket
      Src: /src/libevent/http.c:4072,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4064
    functionDepth: 2
    functionLinenumber: 4064
    functionLinenumberEnd: 4078
    functionName: evhttp_start
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_new_object
    - evhttp_bind_socket
    - mm_free
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_start(const char *address, ev_uint16_t port)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4091,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4092,1
    - Dst: evconnlistener_free
      Src: /src/libevent/http.c:4094,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4096,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4099,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4101,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4104,1
    - Dst: evws_connection_free
      Src: /src/libevent/http.c:4105,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4108,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4109,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4110,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4111,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4114,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4115,1
    - Dst: evhttp_free
      Src: /src/libevent/http.c:4117,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4121,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4123,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4124,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4125,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4126,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - http
    argTypes:
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4130
      start: 4080
    functionDepth: 4
    functionLinenumber: 4080
    functionLinenumberEnd: 4130
    functionName: evhttp_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - evconnlistener_free
    - evws_connection_free
    - evhttp_connection_free
    - TAILQ_REMOVE
    - mm_free
    - evhttp_free
    linkageType: ''
    returnType: void
    signature: void evhttp_free(struct evhttp* http)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4138,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4141,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - http
    - pattern
    - vhost
    argTypes:
    - struct evhttp*
    - char*
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4132
    functionDepth: 1
    functionLinenumber: 4132
    functionLinenumberEnd: 4148
    functionName: evhttp_add_virtual_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - mm_strdup
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evhttp_add_virtual_host(struct evhttp* http, const char *pattern,\n
      \   struct evhttp* vhost)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4156,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - http
    - vhost
    argTypes:
    - struct evhttp*
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4150
    functionDepth: 1
    functionLinenumber: 4150
    functionLinenumberEnd: 4162
    functionName: evhttp_remove_virtual_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evhttp_remove_virtual_host(struct evhttp* http, struct evhttp*
      vhost)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4169,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4173,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4175,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - http
    - alias
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4164
    functionDepth: 1
    functionLinenumber: 4164
    functionLinenumberEnd: 4182
    functionName: evhttp_add_server_alias
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_TAIL
    - mm_strdup
    - mm_calloc
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evhttp_add_server_alias(struct evhttp *http, const char *alias)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:4189,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:4190,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4191,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4192,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - http
    - alias
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4199
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4199
    functionName: evhttp_remove_server_alias
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - mm_free
    - TAILQ_FOREACH
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: int
    signature: int evhttp_remove_server_alias(struct evhttp *http, const char *alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:4204,1
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:4205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - timeout
    argTypes:
    - struct evhttp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4201
    functionDepth: 2
    functionLinenumber: 4201
    functionLinenumberEnd: 4206
    functionName: evhttp_set_timeout
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout(struct evhttp* http, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4210,1
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - tv
    argTypes:
    - struct evhttp*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4212
      start: 4207
    functionDepth: 2
    functionLinenumber: 4207
    functionLinenumberEnd: 4212
    functionName: evhttp_set_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout_tv(struct evhttp* http, const struct timeval*
      tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - tv
    argTypes:
    - struct evhttp*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4217
      start: 4213
    functionDepth: 2
    functionLinenumber: 4213
    functionLinenumberEnd: 4217
    functionName: evhttp_set_read_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_read_timeout_tv(struct evhttp* http, const struct timeval*
      tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - tv
    argTypes:
    - struct evhttp*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4218
    functionDepth: 2
    functionLinenumber: 4218
    functionLinenumberEnd: 4222
    functionName: evhttp_set_write_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_write_timeout_tv(struct evhttp* http, const struct
      timeval* tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - http
    - flags
    argTypes:
    - struct evhttp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4236
      start: 4224
    functionDepth: 0
    functionLinenumber: 4224
    functionLinenumberEnd: 4236
    functionName: evhttp_set_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_set_flags(struct evhttp *http, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - max_headers_size
    argTypes:
    - struct evhttp*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4238
    functionDepth: 0
    functionLinenumber: 4238
    functionLinenumberEnd: 4245
    functionName: evhttp_set_max_headers_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_max_headers_size(struct evhttp* http, ev_ssize_t max_headers_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - max_body_size
    argTypes:
    - struct evhttp*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4254
      start: 4247
    functionDepth: 0
    functionLinenumber: 4247
    functionLinenumberEnd: 4254
    functionName: evhttp_set_max_body_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_max_body_size(struct evhttp* http, ev_ssize_t max_body_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - max_connections
    argTypes:
    - struct evhttp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4263
      start: 4256
    functionDepth: 0
    functionLinenumber: 4256
    functionLinenumberEnd: 4263
    functionName: evhttp_set_max_connections
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_max_connections(struct evhttp* http, int max_connections)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - http
    argTypes:
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4265
    functionDepth: 0
    functionLinenumber: 4265
    functionLinenumberEnd: 4269
    functionName: evhttp_get_connection_count
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_get_connection_count(struct evhttp* http)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - content_type
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4275
      start: 4271
    functionDepth: 0
    functionLinenumber: 4271
    functionLinenumberEnd: 4275
    functionName: evhttp_set_default_content_type
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_default_content_type(struct evhttp *http,\n\tconst
      char *content_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - methods
    argTypes:
    - struct evhttp*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4281
    functionName: evhttp_set_allowed_methods
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_allowed_methods(struct evhttp* http, ev_uint32_t methods)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - cmp
    argTypes:
    - struct evhttp*
    - evhttp_ext_method_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4287
      start: 4283
    functionDepth: 0
    functionLinenumber: 4283
    functionLinenumberEnd: 4287
    functionName: evhttp_set_ext_method_cmp
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_ext_method_cmp(struct evhttp *http, evhttp_ext_method_cb
      cmp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:4295,1
    - Dst: strcmp
      Src: /src/libevent/http.c:4296,1
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4300,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4301,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4305,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4307,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4308,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - http
    - uri
    - cbarg
    argTypes:
    - struct evhttp*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4317
      start: 4289
    functionDepth: 1
    functionLinenumber: 4289
    functionLinenumberEnd: 4317
    functionName: evhttp_set_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - event_warn
    - mm_strdup
    - mm_free
    - TAILQ_INSERT_TAIL
    - TAILQ_FOREACH
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int evhttp_set_cb(struct evhttp *http, const char *uri,\n    void
      (*cb)(struct evhttp_request *, void *), void *cbarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:4324,1
    - Dst: strcmp
      Src: /src/libevent/http.c:4325,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4331,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4332,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - http
    - uri
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4319
    functionDepth: 1
    functionLinenumber: 4319
    functionLinenumberEnd: 4336
    functionName: evhttp_del_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - mm_free
    - TAILQ_FOREACH
    - strcmp
    linkageType: ''
    returnType: int
    signature: int evhttp_del_cb(struct evhttp *http, const char *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - cbarg
    argTypes:
    - struct evhttp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4344
      start: 4338
    functionDepth: 0
    functionLinenumber: 4338
    functionLinenumberEnd: 4344
    functionName: evhttp_set_gencb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_gencb(struct evhttp *http,\n    void (*cb)(struct
      evhttp_request *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - http
    - (*cb)(struct event_base *, void *)
    - cbarg
    argTypes:
    - struct evhttp*
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4352
    functionName: evhttp_set_bevcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_bevcb(struct evhttp *http,\n    struct bufferevent*
      (*cb)(struct event_base *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - cbarg
    argTypes:
    - struct evhttp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4354
    functionDepth: 0
    functionLinenumber: 4354
    functionLinenumberEnd: 4360
    functionName: evhttp_set_newreqcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_newreqcb(struct evhttp *http,\n    int (*cb)(struct
      evhttp_request *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - cbarg
    argTypes:
    - struct evhttp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4361
    functionDepth: 0
    functionLinenumber: 4361
    functionLinenumberEnd: 4368
    functionName: evhttp_set_errorcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_errorcb(struct evhttp *http,\n    int (*cb)(struct
      evhttp_request *, struct evbuffer *, int, const char *, void *),\n    void *cbarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4380,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4381,1
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4389,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4391,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4394,1
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4396,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4398,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4401,1
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:4403,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4404,1
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:4408,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4409,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:4420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4422
      start: 4374
    functionDepth: 1
    functionLinenumber: 4374
    functionLinenumberEnd: 4422
    functionName: evhttp_request_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - mm_calloc
    - evbuffer_new
    - event_warn
    - TAILQ_INIT
    linkageType: ''
    returnType: struct evhttp_request
    signature: 'struct evhttp_request *

      evhttp_request_new(void (*cb)(struct evhttp_request *, void *), void *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/http.c:4433,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4435,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:4437,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4439,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4441,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:4443,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4444,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:4446,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4447,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:4450,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:4453,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4424
    functionDepth: 2
    functionLinenumber: 4424
    functionLinenumberEnd: 4456
    functionName: evhttp_request_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 6
    functionsReached:
    - evbuffer_free
    - evhttp_uri_free
    - evhttp_clear_headers
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evhttp_request_free(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4458
    functionDepth: 0
    functionLinenumber: 4458
    functionLinenumberEnd: 4462
    functionName: evhttp_request_own
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_request_own(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4464
    functionDepth: 0
    functionLinenumber: 4464
    functionLinenumberEnd: 4468
    functionName: evhttp_request_is_owned
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_request_is_owned(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4474
      start: 4470
    functionDepth: 0
    functionLinenumber: 4470
    functionLinenumberEnd: 4474
    functionName: evhttp_request_get_connection
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_request_get_connection(struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4480
      start: 4476
    functionDepth: 0
    functionLinenumber: 4476
    functionLinenumberEnd: 4480
    functionName: evhttp_connection_get_base
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      evhttp_connection_get_base(struct evhttp_connection *conn)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4482
    functionDepth: 0
    functionLinenumber: 4482
    functionLinenumberEnd: 4487
    functionName: evhttp_request_set_chunked_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_chunked_cb(struct evhttp_request *req,\n    void
      (*cb)(struct evhttp_request *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4494
      start: 4489
    functionDepth: 0
    functionLinenumber: 4489
    functionLinenumberEnd: 4494
    functionName: evhttp_request_set_header_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_header_cb(struct evhttp_request *req,\n    int
      (*cb)(struct evhttp_request *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4496
    functionDepth: 0
    functionLinenumber: 4496
    functionLinenumberEnd: 4501
    functionName: evhttp_request_set_error_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_error_cb(struct evhttp_request *req,\n    void
      (*cb)(enum evhttp_request_error, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - cb_arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4509
      start: 4503
    functionDepth: 0
    functionLinenumber: 4503
    functionLinenumberEnd: 4509
    functionName: evhttp_request_set_on_complete_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_on_complete_cb(struct evhttp_request *req,\n
      \   void (*cb)(struct evhttp_request *, void *), void *cb_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:4518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4515
    functionDepth: 1
    functionLinenumber: 4515
    functionLinenumberEnd: 4520
    functionName: evhttp_request_get_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_debug
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_request_get_uri(const struct evhttp_request *req)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:4525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4528
      start: 4522
    functionDepth: 1
    functionLinenumber: 4522
    functionLinenumberEnd: 4528
    functionName: evhttp_request_get_evhttp_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_debug
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_request_get_evhttp_uri(const struct evhttp_request *req)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/http.c:4539,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:4544,1
    - Dst: strlen
      Src: /src/libevent/http.c:4548,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/http.c:4549,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:4553,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4555,1
    - Dst: memcpy
      Src: /src/libevent/http.c:4558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4566
      start: 4530
    functionDepth: 2
    functionLinenumber: 4530
    functionLinenumberEnd: 4566
    functionName: evhttp_request_get_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - mm_malloc
    - event_warn
    - strlen
    - evhttp_uri_get_host
    - EVUTIL_ISDIGIT_
    - evhttp_find_header
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_request_get_host(struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4568
    functionDepth: 0
    functionLinenumber: 4568
    functionLinenumberEnd: 4571
    functionName: evhttp_request_get_command
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum evhttp_cmd_type
    signature: enum evhttp_cmd_type evhttp_request_get_command(const struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4577
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4577
    functionName: evhttp_request_get_response_code
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_request_get_response_code(const struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4583
      start: 4579
    functionDepth: 0
    functionLinenumber: 4579
    functionLinenumberEnd: 4583
    functionName: evhttp_request_get_response_code_line
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_request_get_response_code_line(const struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4589
      start: 4586
    functionDepth: 0
    functionLinenumber: 4586
    functionLinenumberEnd: 4589
    functionName: evhttp_request_get_input_headers
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evkeyvalq
    signature: struct evkeyvalq *evhttp_request_get_input_headers(struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4592
    functionDepth: 0
    functionLinenumber: 4592
    functionLinenumberEnd: 4595
    functionName: evhttp_request_get_output_headers
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evkeyvalq
    signature: struct evkeyvalq *evhttp_request_get_output_headers(struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4601
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4601
    functionName: evhttp_request_get_input_buffer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: struct evbuffer *evhttp_request_get_input_buffer(struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4607
      start: 4604
    functionDepth: 0
    functionLinenumber: 4604
    functionLinenumberEnd: 4607
    functionName: evhttp_request_get_output_buffer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: struct evbuffer *evhttp_request_get_output_buffer(struct evhttp_request
      *req)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:4634,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:4635,1
    - Dst: evhttp_connection_base_bufferevent_unix_new
      Src: /src/libevent/http.c:4642,1
    - Dst: name_from_addr
      Src: /src/libevent/http.c:4650,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4652,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4653,1
    - Dst: event_debug
      Src: /src/libevent/http.c:4657,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:4658,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/http.c:4664,1
    - Dst: atoi
      Src: /src/libevent/http.c:4665,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4666,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4667,1
    - Dst: bufferevent_replacefd
      Src: /src/libevent/http.c:4680,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:4682,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:4684,1
    - Dst: bufferevent_socket_set_conn_address_
      Src: /src/libevent/http.c:4686,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4691,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 5
    argNames:
    - http
    - fd
    - sa
    - salen
    - bev
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    - struct sockaddr*
    - ev_socklen_t
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4693
      start: 4615
    functionDepth: 6
    functionLinenumber: 4615
    functionLinenumberEnd: 4693
    functionName: evhttp_get_request_connection
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_base_bufferevent_new
    - atoi
    - name_from_addr
    - bufferevent_replacefd
    - bufferevent_disable
    - evhttp_connection_base_bufferevent_unix_new
    - bufferevent_enable
    - EV_SOCK_ARG
    - bufferevent_socket_set_conn_address_
    - evhttp_connection_free
    - mm_free
    - event_debug
    linkageType: ''
    returnType: struct evhttp_connection
    signature: "struct evhttp_connection *\nevhttp_get_request_connection(\n\tstruct
      evhttp* http,\n\tevutil_socket_t fd, struct sockaddr *sa, ev_socklen_t salen,\n\tstruct
      bufferevent* bev)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/http.c:4700,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4704,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4705,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:4706,1
    - Dst: struct evhttp*::newreqcb
      Src: /src/libevent/http.c:4723,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:4724,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4728,1
    - Dst: evhttp_start_read_
      Src: /src/libevent/http.c:4730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4733
      start: 4695
    functionDepth: 3
    functionLinenumber: 4695
    functionLinenumberEnd: 4733
    functionName: evhttp_associate_new_request_with_connection
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_start_read_
    - evhttp_request_free
    - event_warn
    - evhttp_request_new
    - mm_strdup
    - struct evhttp*::newreqcb
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: int evhttp_associate_new_request_with_connection(struct evhttp_connection
      *evcon)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_get_request_connection
      Src: /src/libevent/http.c:4742,1
    - Dst: event_sock_warn
      Src: /src/libevent/http.c:4744,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:4745,1
    - Dst: evutil_closesocket
      Src: /src/libevent/http.c:4746,1
    - Dst: evutil_timerisset
      Src: /src/libevent/http.c:4751,1
    - Dst: evhttp_connection_set_read_timeout_tv
      Src: /src/libevent/http.c:4752,1
    - Dst: evutil_timerisset
      Src: /src/libevent/http.c:4753,1
    - Dst: evhttp_connection_set_write_timeout_tv
      Src: /src/libevent/http.c:4754,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4762,1
    - Dst: evhttp_request_new
      Src: /src/libevent/http.c:4769,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4770,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4779,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:4783,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:4784,1
    - Dst: evhttp_associate_new_request_with_connection
      Src: /src/libevent/http.c:4786,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4787,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - http
    - fd
    - sa
    - salen
    - bev
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    - struct sockaddr*
    - ev_socklen_t
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4788
      start: 4735
    functionDepth: 7
    functionLinenumber: 4735
    functionLinenumberEnd: 4788
    functionName: evhttp_get_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evutil_timerisset
    - evhttp_connection_set_write_timeout_tv
    - event_sock_warn
    - evhttp_connection_set_read_timeout_tv
    - evhttp_get_request_connection
    - bufferevent_enable
    - evhttp_request_new
    - evutil_closesocket
    - evhttp_associate_new_request_with_connection
    - EV_SOCK_ARG
    - evhttp_connection_free
    - evhttp_send_error
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: "void evhttp_get_request(struct evhttp *http, evutil_socket_t fd,\n
      \   struct sockaddr *sa, ev_socklen_t salen,\n    struct bufferevent *bev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getnameinfo
      Src: /src/libevent/http.c:4805,1
    - Dst: event_err
      Src: /src/libevent/http.c:4813,1
    - Dst: event_errx
      Src: /src/libevent/http.c:4816,1
    - Dst: gai_strerror
      Src: /src/libevent/http.c:4816,1
    - Dst: fake_getnameinfo
      Src: /src/libevent/http.c:4820,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4827,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - sa
    - salen
    - phost
    - pport
    argTypes:
    - struct sockaddr*
    - ev_socklen_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4829
      start: 4796
    functionDepth: 2
    functionLinenumber: 4796
    functionLinenumberEnd: 4829
    functionName: name_from_addr
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - event_err
    - gai_strerror
    - fake_getnameinfo
    - getnameinfo
    - mm_strdup
    - event_errx
    linkageType: ''
    returnType: void
    signature: "void name_from_addr(struct sockaddr *sa, ev_socklen_t salen,\n    char
      **phost, char **pport)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_
      Src: /src/libevent/http.c:4841,1
    - Dst: event_sock_warn
      Src: /src/libevent/http.c:4844,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/http.c:4849,1
    - Dst: evutil_make_listen_socket_reuseable
      Src: /src/libevent/http.c:4852,1
    - Dst: bind
      Src: /src/libevent/http.c:4857,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/http.c:4865,1
    - Dst: evutil_closesocket
      Src: /src/libevent/http.c:4866,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/http.c:4867,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - ai
    - reuse
    argTypes:
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4869
      start: 4832
    functionDepth: 1
    functionLinenumber: 4832
    functionLinenumberEnd: 4869
    functionName: create_bind_socket_nonblock
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_set_tcp_keepalive
    - evutil_socket_
    - event_sock_warn
    - evutil_closesocket
    - evutil_make_listen_socket_reuseable
    - bind
    - EVUTIL_SOCKET_ERROR
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t create_bind_socket_nonblock(struct evutil_addrinfo
      *ai, int reuse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/http.c:4880,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:4886,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/http.c:4887,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4890,1
    - Dst: event_warnx
      Src: /src/libevent/http.c:4892,1
    - Dst: evutil_gai_strerror
      Src: /src/libevent/http.c:4893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4898
      start: 4871
    functionDepth: 1
    functionLinenumber: 4871
    functionLinenumberEnd: 4898
    functionName: make_addrinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_warn
    - event_warnx
    - evutil_gai_strerror
    - evutil_getaddrinfo
    - evutil_snprintf
    - memset
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      make_addrinfo(const char *address, ev_uint16_t port)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_bind_socket_nonblock
      Src: /src/libevent/http.c:4908,1
    - Dst: make_addrinfo
      Src: /src/libevent/http.c:4910,1
    - Dst: create_bind_socket_nonblock
      Src: /src/libevent/http.c:4915,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/http.c:4917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - address
    - port
    - reuse
    argTypes:
    - char*
    - ev_uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4920
      start: 4900
    functionDepth: 2
    functionLinenumber: 4900
    functionLinenumberEnd: 4920
    functionName: bind_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 3
    functionsReached:
    - create_bind_socket_nonblock
    - evutil_freeaddrinfo
    - make_addrinfo
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t bind_socket(const char *address, ev_uint16_t port,
      int reuse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4936
    functionDepth: 1
    functionLinenumber: 4936
    functionLinenumberEnd: 4943
    functionName: evhttp_uri_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - flags
    argTypes:
    - struct evhttp_uri*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4949
      start: 4945
    functionDepth: 0
    functionLinenumber: 4945
    functionLinenumberEnd: 4949
    functionName: evhttp_uri_set_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_uri_set_flags(struct evhttp_uri *uri, unsigned flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:4958,1
    - Dst: EVUTIL_ISALPHA_
      Src: /src/libevent/http.c:4961,1
    - Dst: EVUTIL_ISALNUM_
      Src: /src/libevent/http.c:4964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4969
      start: 4954
    functionDepth: 1
    functionLinenumber: 4954
    functionLinenumberEnd: 4969
    functionName: scheme_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_ISALNUM_
    - EVUTIL_ISALPHA_
    linkageType: ''
    returnType: int
    signature: int scheme_ok(const char *s, const char *eos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:4978,1
    - Dst: strchr
      Src: /src/libevent/http.c:4979,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:4983,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:4984,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4974
    functionDepth: 1
    functionLinenumber: 4974
    functionLinenumberEnd: 4990
    functionName: userinfo_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISXDIGIT_
    - CHAR_IS_UNRESERVED
    - strchr
    linkageType: ''
    returnType: int
    signature: int userinfo_ok(const char *s, const char *eos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:4996,1
    - Dst: strchr
      Src: /src/libevent/http.c:4997,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5000,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5001,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5007
      start: 4992
    functionDepth: 1
    functionLinenumber: 4992
    functionLinenumberEnd: 5007
    functionName: regname_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISXDIGIT_
    - CHAR_IS_UNRESERVED
    - strchr
    linkageType: ''
    returnType: int
    signature: int regname_ok(const char *s, const char *eos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/http.c:5014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5024
      start: 5009
    functionDepth: 0
    functionLinenumber: 5009
    functionLinenumberEnd: 5024
    functionName: parse_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISDIGIT_
    linkageType: ''
    returnType: int
    signature: int parse_port(const char *s, const char *eos)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5038,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5041,1
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:5050,1
    - Dst: strchr
      Src: /src/libevent/http.c:5051,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5065,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/http.c:5067,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5069
      start: 5027
    functionDepth: 1
    functionLinenumber: 5027
    functionLinenumberEnd: 5069
    functionName: bracket_addr_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - CHAR_IS_UNRESERVED
    - evutil_inet_pton
    - EVUTIL_ISXDIGIT_
    - strchr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int bracket_addr_ok(const char *s, const char *eos)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:5077,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5079,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5081,1
    - Dst: strchr
      Src: /src/libevent/http.c:5089,1
    - Dst: userinfo_ok
      Src: /src/libevent/http.c:5091,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5094,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5096,1
    - Dst: strncmp
      Src: /src/libevent/http.c:5104,1
    - Dst: strchr
      Src: /src/libevent/http.c:5105,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5108,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/http.c:5117,1
    - Dst: parse_port
      Src: /src/libevent/http.c:5123,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:5129,1
    - Dst: bracket_addr_ok
      Src: /src/libevent/http.c:5133,1
    - Dst: regname_ok
      Src: /src/libevent/http.c:5139,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:5143,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5145,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5149,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5152,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 4
    argNames:
    - uri
    - s
    - eos
    - flags
    argTypes:
    - struct evhttp_uri*
    - char*
    - char*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5157
      start: 5071
    functionDepth: 2
    functionLinenumber: 5071
    functionLinenumberEnd: 5157
    functionName: parse_authority
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - mm_malloc
    - event_warn
    - strncmp
    - userinfo_ok
    - EVUTIL_ASSERT
    - bracket_addr_ok
    - regname_ok
    - mm_strdup
    - EVUTIL_ISDIGIT_
    - parse_port
    - strchr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int parse_authority(struct evhttp_uri *uri, char *s, char *eos, unsigned
      *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5159
    functionDepth: 0
    functionLinenumber: 5159
    functionLinenumberEnd: 5168
    functionName: end_of_authority
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      end_of_authority(char *cp)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:5199,1
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:5206,1
    - Dst: strchr
      Src: /src/libevent/http.c:5207,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5210,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5211,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 28
    argCount: 3
    argNames:
    - cp
    - part
    - flags
    argTypes:
    - char*
    - enum uri_part
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5219
      start: 5180
    functionDepth: 1
    functionLinenumber: 5180
    functionLinenumberEnd: 5219
    functionName: end_of_path
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISXDIGIT_
    - strlen
    - CHAR_IS_UNRESERVED
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      end_of_path(char *cp, enum uri_part part, unsigned flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5232
      start: 5221
    functionDepth: 0
    functionLinenumber: 5221
    functionLinenumberEnd: 5232
    functionName: path_matches_noscheme
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int path_matches_noscheme(const char *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uri_parse_with_flags
      Src: /src/libevent/http.c:5237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source_uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5234
    functionDepth: 1
    functionLinenumber: 5234
    functionLinenumberEnd: 5238
    functionName: evhttp_uri_parse
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_uri_parse_with_flags
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_parse(const char *source_uri)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:5247,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5249,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5255,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5257,1
    - Dst: strchr
      Src: /src/libevent/http.c:5273,1
    - Dst: scheme_ok
      Src: /src/libevent/http.c:5274,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5276,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5278,1
    - Dst: end_of_authority
      Src: /src/libevent/http.c:5289,1
    - Dst: parse_authority
      Src: /src/libevent/http.c:5290,1
    - Dst: end_of_path
      Src: /src/libevent/http.c:5299,1
    - Dst: end_of_path
      Src: /src/libevent/http.c:5306,1
    - Dst: end_of_path
      Src: /src/libevent/http.c:5313,1
    - Dst: path_matches_noscheme
      Src: /src/libevent/http.c:5332,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:5335,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5336,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5338,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5343,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5345,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5350,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5352,1
    - Dst: mm_free
      Src: /src/libevent/http.c:5357,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:5362,1
    - Dst: mm_free
      Src: /src/libevent/http.c:5364,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 2
    argNames:
    - source_uri
    - flags
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5366
      start: 5240
    functionDepth: 3
    functionLinenumber: 5240
    functionLinenumberEnd: 5366
    functionName: evhttp_uri_parse_with_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evhttp_uri_free
    - path_matches_noscheme
    - scheme_ok
    - mm_calloc
    - event_warn
    - end_of_authority
    - EVUTIL_ASSERT
    - parse_authority
    - end_of_path
    - mm_strdup
    - mm_free
    - strchr
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_parse_with_flags(const char *source_uri, unsigned flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:5371,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5375,1
    - Dst: end_of_authority
      Src: /src/libevent/http.c:5381,1
    - Dst: parse_authority
      Src: /src/libevent/http.c:5382,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5385,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5387,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:5394,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - source_uri
    - flags
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5396
      start: 5368
    functionDepth: 3
    functionLinenumber: 5368
    functionLinenumberEnd: 5396
    functionName: evhttp_uri_parse_authority
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_uri_free
    - mm_calloc
    - end_of_authority
    - event_warn
    - mm_strdup
    - parse_authority
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_parse_authority(char *source_uri, unsigned flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5406,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5407,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5408,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5410,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5412,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5413,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5414,1
    - Dst: mm_free
      Src: /src/libevent/http.c:5416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5418
      start: 5398
    functionDepth: 1
    functionLinenumber: 5398
    functionLinenumberEnd: 5418
    functionName: evhttp_uri_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 5
    functionsReached:
    - URI_FREE_STR_
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evhttp_uri_free(struct evhttp_uri *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5401
    functionDepth: 0
    functionLinenumber: 5401
    functionLinenumberEnd: 5405
    functionName: URI_FREE_STR_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_FREE_STR_(f)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:5432,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5437,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5438,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5442,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5444,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5445,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5450,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5452,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5454,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5455,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5456,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5458,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5461,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5468,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5471,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5472,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5476,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5477,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5480,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:5482,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:5486,1
    - Dst: evbuffer_remove
      Src: /src/libevent/http.c:5489,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:5493,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - uri
    - buf
    - limit
    argTypes:
    - struct evhttp_uri*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5497
      start: 5420
    functionDepth: 1
    functionLinenumber: 5420
    functionLinenumberEnd: 5497
    functionName: evhttp_uri_join
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - URI_ADD_
    - evbuffer_new
    - evbuffer_add
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - evbuffer_remove
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_join(const struct evhttp_uri *uri, char *buf, size_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5428
      start: 5427
    functionDepth: 0
    functionLinenumber: 5427
    functionLinenumberEnd: 5428
    functionName: URI_ADD_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_ADD_(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5503
      start: 5499
    functionDepth: 0
    functionLinenumber: 5499
    functionLinenumberEnd: 5503
    functionName: evhttp_uri_get_scheme
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_scheme(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5508
      start: 5504
    functionDepth: 0
    functionLinenumber: 5504
    functionLinenumberEnd: 5508
    functionName: evhttp_uri_get_userinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_userinfo(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5513
      start: 5509
    functionDepth: 0
    functionLinenumber: 5509
    functionLinenumberEnd: 5513
    functionName: evhttp_uri_get_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_host(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5519
      start: 5515
    functionDepth: 0
    functionLinenumber: 5515
    functionLinenumberEnd: 5519
    functionName: evhttp_uri_get_unixsocket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_unixsocket(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5525
      start: 5521
    functionDepth: 0
    functionLinenumber: 5521
    functionLinenumberEnd: 5525
    functionName: evhttp_uri_get_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_get_port(const struct evhttp_uri *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5530
      start: 5526
    functionDepth: 0
    functionLinenumber: 5526
    functionLinenumberEnd: 5530
    functionName: evhttp_uri_get_path
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_path(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5535
      start: 5531
    functionDepth: 0
    functionLinenumber: 5531
    functionLinenumberEnd: 5535
    functionName: evhttp_uri_get_query
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_query(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5540
      start: 5536
    functionDepth: 0
    functionLinenumber: 5536
    functionLinenumberEnd: 5540
    functionName: evhttp_uri_get_fragment
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_fragment(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5554
      start: 5542
    functionDepth: 0
    functionLinenumber: 5542
    functionLinenumberEnd: 5554
    functionName: URI_SET_STR_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_SET_STR_(f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scheme_ok
      Src: /src/libevent/http.c:5558,1
    - Dst: strlen
      Src: /src/libevent/http.c:5558,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - scheme
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5555
    functionDepth: 2
    functionLinenumber: 5555
    functionLinenumberEnd: 5563
    functionName: evhttp_uri_set_scheme
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - scheme_ok
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_scheme(struct evhttp_uri *uri, const char *scheme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: userinfo_ok
      Src: /src/libevent/http.c:5567,1
    - Dst: strlen
      Src: /src/libevent/http.c:5567,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - userinfo
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5564
    functionDepth: 2
    functionLinenumber: 5564
    functionLinenumberEnd: 5571
    functionName: evhttp_uri_set_userinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - userinfo_ok
    - strlen
    - URI_SET_STR_
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_userinfo(struct evhttp_uri *uri, const char *userinfo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:5578,1
    - Dst: bracket_addr_ok
      Src: /src/libevent/http.c:5581,1
    - Dst: regname_ok
      Src: /src/libevent/http.c:5584,1
    - Dst: mm_realloc
      Src: /src/libevent/http.c:5593,1
    - Dst: free
      Src: /src/libevent/http.c:5595,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5598,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5604,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - uri
    - host
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5609
      start: 5572
    functionDepth: 2
    functionLinenumber: 5572
    functionLinenumberEnd: 5609
    functionName: evhttp_uri_set_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - free
    - URI_SET_STR_
    - mm_realloc
    - regname_ok
    - bracket_addr_ok
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_host(struct evhttp_uri *uri, const char *host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - uri
    - unixsocket
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5616
      start: 5611
    functionDepth: 1
    functionLinenumber: 5611
    functionLinenumberEnd: 5616
    functionName: evhttp_uri_set_unixsocket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - URI_SET_STR_
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_unixsocket(struct evhttp_uri *uri, const char *unixsocket)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - port
    argTypes:
    - struct evhttp_uri*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5625
      start: 5618
    functionDepth: 0
    functionLinenumber: 5618
    functionLinenumberEnd: 5625
    functionName: evhttp_uri_set_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_port(struct evhttp_uri *uri, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5628
      start: 5626
    functionDepth: 0
    functionLinenumber: 5626
    functionLinenumberEnd: 5628
    functionName: end_of_cpath
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: end_of_cpath(cp,p,f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_of_cpath
      Src: /src/libevent/http.c:5632,1
    - Dst: strlen
      Src: /src/libevent/http.c:5632,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - path
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5637
      start: 5629
    functionDepth: 1
    functionLinenumber: 5629
    functionLinenumberEnd: 5637
    functionName: evhttp_uri_set_path
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - end_of_cpath
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_path(struct evhttp_uri *uri, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_of_cpath
      Src: /src/libevent/http.c:5641,1
    - Dst: strlen
      Src: /src/libevent/http.c:5641,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - query
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5645
      start: 5638
    functionDepth: 1
    functionLinenumber: 5638
    functionLinenumberEnd: 5645
    functionName: evhttp_uri_set_query
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - end_of_cpath
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_query(struct evhttp_uri *uri, const char *query)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_of_cpath
      Src: /src/libevent/http.c:5649,1
    - Dst: strlen
      Src: /src/libevent/http.c:5649,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - fragment
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5653
      start: 5646
    functionDepth: 1
    functionLinenumber: 5646
    functionLinenumberEnd: 5653
    functionName: evhttp_uri_set_fragment
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - end_of_cpath
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_fragment(struct evhttp_uri *uri, const char *fragment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libevent/evutil.c:148,1
    - Dst: open
      Src: /src/libevent/evutil.c:153,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:158,1
    - Dst: close
      Src: /src/libevent/evutil.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pathname
    - flags
    - mode
    argTypes:
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: evutil_open_closeonexec_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - open
    - close
    linkageType: ''
    returnType: int
    signature: int evutil_open_closeonexec_(const char *pathname, int flags, unsigned
      mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/libevent/evutil.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: evutil_fd_filesize
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fstat
    linkageType: ''
    returnType: ev_off_t
    signature: ev_off_t evutil_fd_filesize(evutil_socket_t fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:196,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:197,1
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/evutil.c:206,1
    - Dst: evutil_fd_filesize
      Src: /src/libevent/evutil.c:209,1
    - Dst: close
      Src: /src/libevent/evutil.c:211,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:214,1
    - Dst: close
      Src: /src/libevent/evutil.c:216,1
    - Dst: read
      Src: /src/libevent/evutil.c:225,1
    - Dst: N_TO_READ
      Src: /src/libevent/evutil.c:225,1
    - Dst: close
      Src: /src/libevent/evutil.c:230,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:232,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - filename
    - content_out
    - len_out
    - is_binary
    argTypes:
    - char*
    - char**
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 240
    functionName: evutil_read_file_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - EVUTIL_ASSERT
    - evutil_open_closeonexec_
    - N_TO_READ
    - close
    - read
    - mm_free
    - evutil_fd_filesize
    linkageType: ''
    returnType: int
    signature: "int evutil_read_file_(const char *filename, char **content_out, size_t
      *len_out,\n    int is_binary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: N_TO_READ
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: N_TO_READ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: N_TO_READ
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: N_TO_READ(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/evutil.c:255,1
    - Dst: GetTempPathW
      Src: /src/libevent/evutil.c:261,1
    - Dst: GetLongPathNameW
      Src: /src/libevent/evutil.c:262,1
    - Dst: GetTempFileNameW
      Src: /src/libevent/evutil.c:263,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:264,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/evutil.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - tmpfile
    argTypes:
    - WCHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 268
    functionName: create_tmpfile
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - GetTempFileNameW
    - GetTempPathW
    - evutil_secure_rng_get_bytes
    - event_warnx
    - GetLongPathNameW
    - EVUTIL_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: int create_tmpfile(WCHAR tmpfile[MAX_PATH])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/evutil.c:282,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: evutil_check_working_afunix_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - socket
    - evutil_closesocket
    linkageType: ''
    returnType: int
    signature: int evutil_check_working_afunix_()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:312,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:312,1
    - Dst: socket
      Src: /src/libevent/evutil.c:316,1
    - Dst: memset
      Src: /src/libevent/evutil.c:319,1
    - Dst: create_tmpfile
      Src: /src/libevent/evutil.c:321,1
    - Dst: DeleteFileW
      Src: /src/libevent/evutil.c:324,1
    - Dst: WideCharToMultiByte
      Src: /src/libevent/evutil.c:327,1
    - Dst: strlcpy
      Src: /src/libevent/evutil.c:331,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:333,1
    - Dst: bind
      Src: /src/libevent/evutil.c:337,1
    - Dst: listen
      Src: /src/libevent/evutil.c:340,1
    - Dst: socket
      Src: /src/libevent/evutil.c:343,1
    - Dst: memset
      Src: /src/libevent/evutil.c:347,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:351,1
    - Dst: connect
      Src: /src/libevent/evutil.c:354,1
    - Dst: accept
      Src: /src/libevent/evutil.c:359,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:366,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/evutil.c:371,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:374,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:381,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/evutil.c:384,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:386,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:388,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:390,1
    - Dst: DeleteFileW
      Src: /src/libevent/evutil.c:392,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:394,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 74
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 397
    functionName: evutil_win_socketpair_afunix
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - connect
    - evutil_ascii_strcasecmp
    - socket
    - strlcpy
    - getsockname
    - WideCharToMultiByte
    - event_warnx
    - ERR
    - accept
    - evutil_closesocket
    - bind
    - listen
    - EVUTIL_SOCKET_ERROR
    - create_tmpfile
    - DeleteFileW
    - memset
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: "int evutil_win_socketpair_afunix(int family, int type, int protocol,\n
      \   evutil_socket_t fd[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: ERR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:407,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/evutil.c:410,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:417,1
    - Dst: evutil_win_socketpair_afunix
      Src: /src/libevent/evutil.c:426,1
    - Dst: evutil_ersatz_socketpair_
      Src: /src/libevent/evutil.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 430
    functionName: evutil_win_socketpair
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_ersatz_socketpair_
    - evutil_win_socketpair_afunix
    - evutil_check_working_afunix_
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: "int evutil_win_socketpair(int family, int type, int protocol,\n    evutil_socket_t
      fd[2])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/libevent/evutil.c:439,1
    - Dst: event_sock_warn
      Src: /src/libevent/evutil.c:440,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:447,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:448,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:452,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 460
    functionName: evutil_make_socket_nonblocking
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - ioctlsocket
    - event_warn
    - event_sock_warn
    linkageType: ''
    returnType: int
    signature: int evutil_make_socket_nonblocking(evutil_socket_t fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/evutil.c:470,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:472,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 478
    functionName: evutil_fast_socket_nonblocking
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - evutil_make_socket_nonblocking
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evutil_fast_socket_nonblocking(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 493
    functionName: evutil_make_listen_socket_reuseable
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_reuseable(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:503,1
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:526,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 540
    functionName: evutil_make_listen_socket_reuseable_port
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_reuseable_port(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: evutil_make_listen_socket_ipv6only
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_ipv6only(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 562
    functionName: evutil_make_listen_socket_not_ipv6only
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_not_ipv6only(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: evutil_make_tcp_listen_socket_deferred
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_tcp_listen_socket_deferred(evutil_socket_t sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/libevent/evutil.c:583,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:584,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:588,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: evutil_make_socket_closeonexec
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evutil_make_socket_closeonexec(evutil_socket_t fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/libevent/evutil.c:605,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 611
    functionName: evutil_fast_socket_closeonexec
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evutil_fast_socket_closeonexec(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libevent/evutil.c:617,1
    - Dst: closesocket
      Src: /src/libevent/evutil.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: evutil_closesocket
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 5
    functionsReached:
    - closesocket
    - close
    linkageType: ''
    returnType: int
    signature: int evutil_closesocket(evutil_socket_t sock)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/libevent/evutil.c:627,1
    - Dst: strtol
      Src: /src/libevent/evutil.c:629,1
    - Dst: _atoi64
      Src: /src/libevent/evutil.c:636,1
    - Dst: isspace
      Src: /src/libevent/evutil.c:637,1
    - Dst: isdigit
      Src: /src/libevent/evutil.c:641,1
    - Dst: _strtoi64
      Src: /src/libevent/evutil.c:647,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:654,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:657,1
    - Dst: EVUTIL_ISSPACE_
      Src: /src/libevent/evutil.c:664,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/evutil.c:669,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/evutil.c:672,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 3
    argNames:
    - s
    - endptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 681
    functionName: evutil_strtoll
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached:
    - strtoll
    - strtol
    - isdigit
    - EVUTIL_ISSPACE_
    - _atoi64
    - sscanf
    - _strtoi64
    - EVUTIL_ISDIGIT_
    - EVUTIL_ISXDIGIT_
    - isspace
    linkageType: ''
    returnType: ev_int64_t
    signature: ev_int64_t evutil_strtoll(const char *s, char **endptr, int base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSAGetLastError
      Src: /src/libevent/evutil.c:688,1
    - Dst: getsockopt
      Src: /src/libevent/evutil.c:690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 697
    functionName: evutil_socket_geterror
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - WSAGetLastError
    linkageType: ''
    returnType: int
    signature: int evutil_socket_geterror(evutil_socket_t sock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/evutil.c:708,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/evutil.c:711,1
    - Dst: connect
      Src: /src/libevent/evutil.c:716,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evutil.c:717,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/evutil.c:718,1
    - Dst: EVUTIL_ERR_CONNECT_REFUSED
      Src: /src/libevent/evutil.c:720,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:729,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - fd_ptr
    - sa
    - socklen
    argTypes:
    - evutil_socket_t*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 733
    functionName: evutil_socket_connect_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - connect
    - socket
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - evutil_make_socket_nonblocking
    - EVUTIL_ERR_CONNECT_REFUSED
    - evutil_closesocket
    - evutil_socket_geterror
    linkageType: ''
    returnType: int
    signature: int evutil_socket_connect_(evutil_socket_t *fd_ptr, const struct sockaddr
      *sa, int socklen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/libevent/evutil.c:745,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/evutil.c:749,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 756
    functionName: evutil_socket_finished_connecting_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - EVUTIL_SET_SOCKET_ERROR
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_socket_finished_connecting_(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 776
    functionName: evutil_v4addr_is_localhost
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_localhost(ev_uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 781
    functionName: evutil_v4addr_is_linklocal
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_linklocal(ev_uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    functionName: evutil_v4addr_is_classd
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_classd(ev_uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/evutil.c:791,1
    - Dst: evutil_v4addr_is_localhost
      Src: /src/libevent/evutil.c:793,1
    - Dst: evutil_v4addr_is_linklocal
      Src: /src/libevent/evutil.c:794,1
    - Dst: evutil_v4addr_is_classd
      Src: /src/libevent/evutil.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 796
    functionName: evutil_v4addr_is_local_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - ntohl
    - evutil_v4addr_is_classd
    - evutil_v4addr_is_linklocal
    - evutil_v4addr_is_localhost
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_local_(const struct in_addr *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libevent/evutil.c:805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 810
    functionName: evutil_v6addr_is_local_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int evutil_v6addr_is_local_(const struct in6_addr *in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_v4addr_is_local_
      Src: /src/libevent/evutil.c:817,1
    - Dst: event_debug
      Src: /src/libevent/evutil.c:818,1
    - Dst: evutil_v6addr_is_local_
      Src: /src/libevent/evutil.c:823,1
    - Dst: event_debug
      Src: /src/libevent/evutil.c:824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 828
    functionName: evutil_found_ifaddr
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_v4addr_is_local_
    - evutil_v6addr_is_local_
    - event_debug
    linkageType: ''
    returnType: void
    signature: void evutil_found_ifaddr(const struct sockaddr *sa)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/libevent/evutil.c:843,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:844,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:851,1
    - Dst: freeifaddrs
      Src: /src/libevent/evutil.c:854,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evutil.c:861,1
    - Dst: TEXT
      Src: /src/libevent/evutil.c:861,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil.c:874,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:879,1
    - Dst: fn
      Src: /src/libevent/evutil.c:882,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:885,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:886,1
    - Dst: fn
      Src: /src/libevent/evutil.c:889,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:899,1
    - Dst: FreeLibrary
      Src: /src/libevent/evutil.c:906,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:908,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 913
    functionName: evutil_check_ifaddrs
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_found_ifaddr
    - mm_malloc
    - fn
    - event_warn
    - evutil_load_windows_system_library_
    - TEXT
    - getifaddrs
    - mm_free
    - GetProcAddress
    - freeifaddrs
    - FreeLibrary
    linkageType: ''
    returnType: int
    signature: int evutil_check_ifaddrs(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evutil_check_ifaddrs
      Src: /src/libevent/evutil.c:932,1
    - Dst: memset
      Src: /src/libevent/evutil.c:942,1
    - Dst: htons
      Src: /src/libevent/evutil.c:944,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:945,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:946,1
    - Dst: memset
      Src: /src/libevent/evutil.c:948,1
    - Dst: htons
      Src: /src/libevent/evutil.c:950,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:951,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:952,1
    - Dst: memset
      Src: /src/libevent/evutil.c:954,1
    - Dst: memset
      Src: /src/libevent/evutil.c:955,1
    - Dst: socket
      Src: /src/libevent/evutil.c:958,1
    - Dst: connect
      Src: /src/libevent/evutil.c:959,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:960,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:962,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:965,1
    - Dst: socket
      Src: /src/libevent/evutil.c:967,1
    - Dst: connect
      Src: /src/libevent/evutil.c:968,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:969,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:971,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:975,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 917
    functionDepth: 4
    functionLinenumber: 917
    functionLinenumberEnd: 978
    functionName: evutil_check_interfaces
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - connect
    - evutil_check_ifaddrs
    - evutil_inet_pton
    - socket
    - EVUTIL_ASSERT
    - getsockname
    - evutil_closesocket
    - htons
    - evutil_found_ifaddr
    - memset
    linkageType: ''
    returnType: int
    signature: int evutil_check_interfaces(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:996,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1002,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1004,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1008,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1010,1
    - Dst: mm_calloc
      Src: /src/libevent/evutil.c:1018,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - sa
    - socklen
    - hints
    argTypes:
    - struct sockaddr*
    - ev_socklen_t
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1031
    functionName: evutil_new_addrinfo_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - mm_calloc
    - EVUTIL_ASSERT
    - evutil_new_addrinfo_
    - evutil_freeaddrinfo
    - memcpy
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: "struct evutil_addrinfo *\nevutil_new_addrinfo_(struct sockaddr *sa,
      ev_socklen_t socklen,\n    const struct evutil_addrinfo *hints)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - first
    - append
    argTypes:
    - struct evutil_addrinfo*
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1048
    functionName: evutil_addrinfo_append_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: "struct evutil_addrinfo *\nevutil_addrinfo_append_(struct evutil_addrinfo
      *first,\n    struct evutil_addrinfo *append)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/libevent/evutil.c:1055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - servname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1060
    functionName: parse_numeric_servname
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int parse_numeric_servname(const char *servname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_numeric_servname
      Src: /src/libevent/evutil.c:1069,1
    - Dst: getservbyname
      Src: /src/libevent/evutil.c:1074,1
    - Dst: ntohs
      Src: /src/libevent/evutil.c:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - servname
    - protocol
    - hints
    argTypes:
    - char*
    - char*
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1081
    functionName: evutil_parse_servname
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - ntohs
    - getservbyname
    - parse_numeric_servname
    linkageType: ''
    returnType: int
    signature: "int evutil_parse_servname(const char *servname, const char *protocol,\n
      \   const struct evutil_addrinfo *hints)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getprotobynumber
      Src: /src/libevent/evutil.c:1102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1109
    functionName: evutil_unparse_protoname
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - getprotobynumber
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_unparse_protoname(int proto)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - hints
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1133
    functionName: evutil_getaddrinfo_infer_protocols
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_getaddrinfo_infer_protocols(struct evutil_addrinfo *hints)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: evutil_getaddrinfo_infer_protocols
      Src: /src/libevent/evutil.c:1168,1
    - Dst: evutil_unparse_protoname
      Src: /src/libevent/evutil.c:1171,1
    - Dst: evutil_parse_servname
      Src: /src/libevent/evutil.c:1175,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1187,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1189,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1196,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1204,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1206,1
    - Dst: htonl
      Src: /src/libevent/evutil.c:1211,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1213,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1217,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evutil.c:1221,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1230,1
    - Dst: evutil_inet_pton_scope
      Src: /src/libevent/evutil.c:1231,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1235,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1237,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1248,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:1249,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1252,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1253,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 5
    argNames:
    - nodename
    - servname
    - hints
    - res
    - portnum
    argTypes:
    - char*
    - char*
    - struct evutil_addrinfo*
    - struct evutil_addrinfo**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1270
    functionName: evutil_getaddrinfo_common_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_parse_servname
    - evutil_inet_pton
    - evutil_getaddrinfo_infer_protocols
    - evutil_unparse_protoname
    - evutil_new_addrinfo_
    - htonl
    - htons
    - evutil_addrinfo_append_
    - evutil_freeaddrinfo
    - memset
    - evutil_inet_pton_scope
    linkageType: ''
    returnType: int
    signature: "int evutil_getaddrinfo_common_(const char *nodename, const char *servname,\n
      \   struct evutil_addrinfo *hints, struct evutil_addrinfo **res, int *portnum)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil.c:1345,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1347,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:1352,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1356,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1358,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:1363,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1370,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1371,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1373,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evutil.c:1376,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:1380,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - ent
    - port
    - hints
    argTypes:
    - struct hostent*
    - int
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1332
    functionDepth: 2
    functionLinenumber: 1332
    functionLinenumberEnd: 1388
    functionName: addrinfo_from_hostent
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_new_addrinfo_
    - event_warnx
    - htons
    - evutil_addrinfo_append_
    - evutil_freeaddrinfo
    - mm_strdup
    - memset
    - memcpy
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: "struct evutil_addrinfo *\naddrinfo_from_hostent(const struct hostent
      *ent,\n    int port, const struct evutil_addrinfo *hints)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_check_interfaces
      Src: /src/libevent/evutil.c:1402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - hints
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1395
    functionDepth: 5
    functionLinenumber: 1395
    functionLinenumberEnd: 1408
    functionName: evutil_adjust_hints_for_addrconfig_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_check_interfaces
    linkageType: ''
    returnType: void
    signature: void evutil_adjust_hints_for_addrconfig_(struct evutil_addrinfo *hints)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1442
    functionName: ai_find_protocol
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: struct evutil_addrinfo *ai_find_protocol(struct evutil_addrinfo *ai)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_for_getaddrinfo_hacks
      Src: /src/libevent/evutil.c:1484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1486
    functionName: need_numeric_port_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - test_for_getaddrinfo_hacks
    linkageType: ''
    returnType: int
    signature: int need_numeric_port_hack(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_for_getaddrinfo_hacks
      Src: /src/libevent/evutil.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1488
    functionDepth: 0
    functionLinenumber: 1488
    functionLinenumberEnd: 1494
    functionName: need_socktype_protocol_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - test_for_getaddrinfo_hacks
    linkageType: ''
    returnType: int
    signature: int need_socktype_protocol_hack(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/evutil.c:1505,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1508,1
    - Dst: freeaddrinfo
      Src: /src/libevent/evutil.c:1515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - port
    - ai
    argTypes:
    - int
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1518
    functionName: apply_numeric_port_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - htons
    linkageType: ''
    returnType: void
    signature: void apply_numeric_port_hack(int port, struct evutil_addrinfo **ai)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_getaddrinfo_infer_protocols
      Src: /src/libevent/evutil.c:1525,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:1528,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1531,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:1538,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1540,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1549
    functionName: apply_socktype_protocol_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - evutil_getaddrinfo_infer_protocols
    - mm_strdup
    - mm_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: int apply_socktype_protocol_hack(struct evutil_addrinfo *ai)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1561,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1563,1
    - Dst: evutil_adjust_hints_for_addrconfig_
      Src: /src/libevent/evutil.c:1571,1
    - Dst: parse_numeric_servname
      Src: /src/libevent/evutil.c:1578,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evutil.c:1597,1
    - Dst: need_numeric_port_hack
      Src: /src/libevent/evutil.c:1609,1
    - Dst: parse_numeric_servname
      Src: /src/libevent/evutil.c:1610,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evutil.c:1613,1
    - Dst: need_socktype_protocol_hack
      Src: /src/libevent/evutil.c:1618,1
    - Dst: evutil_getaddrinfo_infer_protocols
      Src: /src/libevent/evutil.c:1619,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:1629,1
    - Dst: getaddrinfo
      Src: /src/libevent/evutil.c:1634,1
    - Dst: apply_numeric_port_hack
      Src: /src/libevent/evutil.c:1636,1
    - Dst: need_socktype_protocol_hack
      Src: /src/libevent/evutil.c:1638,1
    - Dst: apply_socktype_protocol_hack
      Src: /src/libevent/evutil.c:1639,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1640,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1652,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1654,1
    - Dst: evutil_adjust_hints_for_addrconfig_
      Src: /src/libevent/evutil.c:1658,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evutil.c:1660,1
    - Dst: gethostbyname_r
      Src: /src/libevent/evutil.c:1674,1
    - Dst: gethostbyname_r
      Src: /src/libevent/evutil.c:1679,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1684,1
    - Dst: gethostbyname_r
      Src: /src/libevent/evutil.c:1685,1
    - Dst: gethostbyname
      Src: /src/libevent/evutil.c:1690,1
    - Dst: WSAGetLastError
      Src: /src/libevent/evutil.c:1692,1
    - Dst: addrinfo_from_hostent
      Src: /src/libevent/evutil.c:1734,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 4
    argNames:
    - nodename
    - servname
    - hints_in
    - res
    argTypes:
    - char*
    - char*
    - struct evutil_addrinfo*
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1552
    functionDepth: 6
    functionLinenumber: 1552
    functionLinenumberEnd: 1741
    functionName: evutil_getaddrinfo
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - memcpy
    - getaddrinfo
    - apply_socktype_protocol_hack
    - gethostbyname_r
    - WSAGetLastError
    - addrinfo_from_hostent
    - evutil_getaddrinfo_infer_protocols
    - EVUTIL_ASSERT
    - gethostbyname
    - evutil_adjust_hints_for_addrconfig_
    - need_socktype_protocol_hack
    - evutil_getaddrinfo_common_
    - evutil_freeaddrinfo
    - need_numeric_port_hack
    - apply_numeric_port_hack
    - memset
    - parse_numeric_servname
    linkageType: ''
    returnType: int
    signature: "int evutil_getaddrinfo(const char *nodename, const char *servname,\n
      \   const struct evutil_addrinfo *hints_in, struct evutil_addrinfo **res)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1758,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1759,1
    - Dst: freeaddrinfo
      Src: /src/libevent/evutil.c:1772,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1777,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1778,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1782
    functionName: evutil_freeaddrinfo
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 5
    functionsReached:
    - freeaddrinfo
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evutil_freeaddrinfo(struct evutil_addrinfo *ai)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evutil.c:1791,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1792,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:1794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1784
    functionDepth: 1
    functionLinenumber: 1784
    functionLinenumberEnd: 1805
    functionName: evutil_dup_addrinfo_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - mm_strdup
    - mm_calloc
    - memcpy
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      evutil_dup_addrinfo_(struct evutil_addrinfo *ai)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fn
    argTypes:
    - evdns_getaddrinfo_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1815
    functionName: evutil_set_evdns_getaddrinfo_fn_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_set_evdns_getaddrinfo_fn_(evdns_getaddrinfo_fn fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fn
    argTypes:
    - evdns_getaddrinfo_cancel_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1821
    functionName: evutil_set_evdns_getaddrinfo_cancel_fn_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_set_evdns_getaddrinfo_cancel_fn_(evdns_getaddrinfo_cancel_fn
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1829
    functionName: evutil_set_resolvconf_filename_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_set_resolvconf_filename_(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1838
    functionName: evutil_resolvconf_filename_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_resolvconf_filename_(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_getaddrinfo_impl
      Src: /src/libevent/evutil.c:1851,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/evutil.c:1856,1
    - Dst: cb
      Src: /src/libevent/evutil.c:1857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - dns_base
    - nodename
    - servname
    - hints_in
    - arg
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1844
    functionDepth: 7
    functionLinenumber: 1844
    functionLinenumberEnd: 1860
    functionName: evutil_getaddrinfo_async_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - evdns_getaddrinfo_impl
    - cb
    linkageType: ''
    returnType: struct evdns_getaddrinfo_request
    signature: "struct evdns_getaddrinfo_request *evutil_getaddrinfo_async_(\n    struct
      evdns_base *dns_base,\n    const char *nodename, const char *servname,\n    const
      struct evutil_addrinfo *hints_in,\n    void (*cb)(int, struct evutil_addrinfo
      *, void *), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_getaddrinfo_cancel_impl
      Src: /src/libevent/evutil.c:1865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1867
    functionName: evutil_getaddrinfo_cancel_async_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evdns_getaddrinfo_cancel_impl
    linkageType: ''
    returnType: void
    signature: void evutil_getaddrinfo_cancel_async_(struct evdns_getaddrinfo_request
      *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: gai_strerrorA
      Src: /src/libevent/evutil.c:1905,1
    - Dst: gai_strerror
      Src: /src/libevent/evutil.c:1907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1912
    functionName: evutil_gai_strerror
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - gai_strerror
    - gai_strerrorA
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_gai_strerror(int err)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evutil.c:1920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1916
    functionDepth: 0
    functionLinenumber: 1916
    functionLinenumberEnd: 1925
    functionName: chomp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void chomp (char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct cached_sock_errs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1954
    functionName: hash_cached_sock_errs
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned hash_cached_sock_errs(const struct cached_sock_errs_entry
      *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cached_sock_errs_entry*
    - struct cached_sock_errs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1956
    functionDepth: 0
    functionLinenumber: 1956
    functionLinenumberEnd: 1961
    functionName: eq_cached_sock_errs
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int eq_cached_sock_errs(const struct cached_sock_errs_entry *a,\n\t\t
      \   const struct cached_sock_errs_entry *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/evutil.c:1993,1
    - Dst: HT_FIND
      Src: /src/libevent/evutil.c:1996,1
    - Dst: FormatMessageA
      Src: /src/libevent/evutil.c:2002,1
    - Dst: chomp
      Src: /src/libevent/evutil.c:2006,1
    - Dst: LocalAlloc
      Src: /src/libevent/evutil.c:2010,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2015,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:2019,1
    - Dst: LocalFree
      Src: /src/libevent/evutil.c:2022,1
    - Dst: HT_INSERT
      Src: /src/libevent/evutil.c:2029,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/evutil.c:2032,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 2035
    functionName: evutil_socket_error_to_string
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - HT_INSERT
    - mm_malloc
    - EVLOCK_UNLOCK
    - chomp
    - FormatMessageA
    - EVLOCK_LOCK
    - HT_FIND
    - LocalAlloc
    - LocalFree
    - evutil_snprintf
    linkageType: ''
    returnType: void
    signature: void evutil_socket_error_to_string(int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/evutil.c:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2043
    functionName: evutil_global_setup_locks_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_SETUP_GLOBAL_LOCK
    linkageType: ''
    returnType: int
    signature: int evutil_global_setup_locks_(const int enable_locks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HT_START
      Src: /src/libevent/evutil.c:2051,1
    - Dst: HT_NEXT_RMV
      Src: /src/libevent/evutil.c:2054,1
    - Dst: LocalFree
      Src: /src/libevent/evutil.c:2057,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:2058,1
    - Dst: HT_CLEAR
      Src: /src/libevent/evutil.c:2061,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evutil.c:2065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2069
    functionName: evutil_free_sock_err_globals
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - HT_START
    - HT_NEXT_RMV
    - HT_CLEAR
    - EVTHREAD_FREE_LOCK
    - LocalFree
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evutil_free_sock_err_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2074
    functionDepth: 0
    functionLinenumber: 2074
    functionLinenumberEnd: 2078
    functionName: evutil_global_setup_locks_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_global_setup_locks_(const int enable_locks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2084
    functionName: evutil_free_sock_err_globals
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_free_sock_err_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/evutil.c:2093,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/evutil.c:2094,1
    - Dst: va_end
      Src: /src/libevent/evutil.c:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - buflen
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2097
    functionName: evutil_snprintf
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 6
    functionsReached:
    - evutil_vsnprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int evutil_snprintf(char *buf, size_t buflen, const char *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _vsnprintf
      Src: /src/libevent/evutil.c:2106,1
    - Dst: _vscprintf
      Src: /src/libevent/evutil.c:2108,1
    - Dst: _xpg5_vsnprintf
      Src: /src/libevent/evutil.c:2115,1
    - Dst: vsnprintf
      Src: /src/libevent/evutil.c:2117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - buflen
    - format
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2124
    functionName: evutil_vsnprintf
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - _xpg5_vsnprintf
    - _vscprintf
    - _vsnprintf
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int evutil_vsnprintf(char *buf, size_t buflen, const char *format,
      va_list ap)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/libevent/evutil.c:2133,1
    - Dst: ntohl
      Src: /src/libevent/evutil.c:2137,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2139,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2164,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2168,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2172,1
    - Dst: strlcpy
      Src: /src/libevent/evutil.c:2174,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2206,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2208,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2214,1
    - Dst: strlcpy
      Src: /src/libevent/evutil.c:2216,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 66
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - len
    argTypes:
    - int
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2223
    functionName: evutil_inet_ntop
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - ntohl
    - inet_ntop
    - strlen
    - strlcpy
    - evutil_snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_inet_ntop(int af, const void *src, char *dst, size_t len)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2236,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2238,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2242,1
    - Dst: if_nametoindex
      Src: /src/libevent/evutil.c:2244,1
    - Dst: strtoul
      Src: /src/libevent/evutil.c:2247,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:2252,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2255,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2258,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:2259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - indexp
    argTypes:
    - int
    - char*
    - void*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2261
    functionName: evutil_inet_pton_scope
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - strtoul
    - evutil_inet_pton
    - mm_strdup
    - mm_free
    - strchr
    - if_nametoindex
    linkageType: ''
    returnType: int
    signature: int evutil_inet_pton_scope(int af, const char *src, void *dst, unsigned
      *indexp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/libevent/evutil.c:2267,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:2273,1
    - Dst: htonl
      Src: /src/libevent/evutil.c:2279,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2286,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2291,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/evutil.c:2295,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:2301,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/evutil.c:2320,1
    - Dst: strtol
      Src: /src/libevent/evutil.c:2322,1
    - Dst: memmove
      Src: /src/libevent/evutil.c:2358,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2360,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 77
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2373
    functionName: evutil_inet_pton
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 4
    functionsReached:
    - memmove
    - strtol
    - htonl
    - sscanf
    - strlen
    - EVUTIL_ISDIGIT_
    - EVUTIL_ISXDIGIT_
    - inet_pton
    - memset
    - strchr
    linkageType: ''
    returnType: int
    signature: int evutil_inet_pton(int af, const char *src, void *dst)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evutil.c:2391,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2394,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2401,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2409,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2418,1
    - Dst: atoi
      Src: /src/libevent/evutil.c:2431,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2443,1
    - Dst: htons
      Src: /src/libevent/evutil.c:2448,1
    - Dst: evutil_inet_pton_scope
      Src: /src/libevent/evutil.c:2449,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2456,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2464,1
    - Dst: htons
      Src: /src/libevent/evutil.c:2469,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2470,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2474,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 3
    argNames:
    - ip_as_string
    - out
    - outlen
    argTypes:
    - char*
    - struct sockaddr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2375
    functionDepth: 2
    functionLinenumber: 2375
    functionLinenumberEnd: 2478
    functionName: evutil_parse_sockaddr_port
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - atoi
    - evutil_inet_pton_scope
    - evutil_inet_pton
    - htons
    - strchr
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr
      *out, int *outlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_ntop
      Src: /src/libevent/evutil.c:2488,1
    - Dst: ntohs
      Src: /src/libevent/evutil.c:2489,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2491,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/evutil.c:2496,1
    - Dst: ntohs
      Src: /src/libevent/evutil.c:2497,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2499,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - sa
    - out
    - outlen
    argTypes:
    - struct sockaddr*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2480
    functionDepth: 3
    functionLinenumber: 2480
    functionLinenumberEnd: 2507
    functionName: evutil_format_sockaddr_port_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - ntohs
    - evutil_inet_ntop
    - evutil_snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_format_sockaddr_port_(const struct sockaddr *sa, char *out, size_t outlen)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libevent/evutil.c:2536,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - sa1
    - sa2
    - include_port
    argTypes:
    - struct sockaddr*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2546
    functionName: evutil_sockaddr_cmp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int evutil_sockaddr_cmp(const struct sockaddr *sa1, const struct sockaddr
      *sa2,\n    int include_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2604
    functionDepth: 0
    functionLinenumber: 2604
    functionLinenumberEnd: 2609
    functionName: IMPL_CTYPE_FN
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_CTYPE_FN(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2618
    functionDepth: 0
    functionLinenumber: 2618
    functionLinenumberEnd: 2621
    functionName: EVUTIL_TOLOWER_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char EVUTIL_TOLOWER_(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2622
    functionDepth: 0
    functionLinenumber: 2622
    functionLinenumberEnd: 2625
    functionName: EVUTIL_TOUPPER_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char EVUTIL_TOUPPER_(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2631,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2640
    functionName: evutil_ascii_strcasecmp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 11
    functionsReached:
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: int
    signature: int evutil_ascii_strcasecmp(const char *s1, const char *s2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2645,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2641
    functionDepth: 1
    functionLinenumber: 2641
    functionLinenumberEnd: 2655
    functionName: evutil_ascii_strncasecmp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: int
    signature: int evutil_ascii_strncasecmp(const char *s1, const char *s2, size_t
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2663,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2664,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2669,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/evutil.c:2670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - find
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2657
    functionDepth: 2
    functionLinenumber: 2657
    functionLinenumberEnd: 2674
    functionName: evutil_ascii_strcasestr
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - EVUTIL_TOLOWER_
    - strlen
    - evutil_ascii_strncasecmp
    linkageType: ''
    returnType: char
    signature: char * evutil_ascii_strcasestr(const char* s, const char *find)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evutil.c:2684,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2676
    functionDepth: 0
    functionLinenumber: 2676
    functionLinenumberEnd: 2695
    functionName: evutil_rtrim_lws_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached:
    - strchr
    linkageType: ''
    returnType: void
    signature: void evutil_rtrim_lws_(char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: issetugid
      Src: /src/libevent/evutil.c:2701,1
    - Dst: getauxval
      Src: /src/libevent/evutil.c:2703,1
    - Dst: getuid
      Src: /src/libevent/evutil.c:2707,1
    - Dst: geteuid
      Src: /src/libevent/evutil.c:2707,1
    - Dst: getgid
      Src: /src/libevent/evutil.c:2711,1
    - Dst: getegid
      Src: /src/libevent/evutil.c:2711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2697
    functionDepth: 0
    functionLinenumber: 2697
    functionLinenumberEnd: 2716
    functionName: evutil_issetugid
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - getgid
    - getuid
    - getauxval
    - getegid
    - geteuid
    - issetugid
    linkageType: ''
    returnType: int
    signature: int evutil_issetugid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_issetugid
      Src: /src/libevent/evutil.c:2721,1
    - Dst: getenv
      Src: /src/libevent/evutil.c:2724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - varname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2718
    functionDepth: 1
    functionLinenumber: 2718
    functionLinenumberEnd: 2725
    functionName: evutil_getenv_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - getenv
    - evutil_issetugid
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_getenv_(const char *varname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil.c:2732,1
    - Dst: _getpid
      Src: /src/libevent/evutil.c:2735,1
    - Dst: getpid
      Src: /src/libevent/evutil.c:2737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - state
    - seed
    argTypes:
    - struct evutil_weakrand_state*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2742
    functionName: evutil_weakrand_seed_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - _getpid
    - getpid
    linkageType: ''
    returnType: ev_uint32_t
    signature: ev_uint32_t evutil_weakrand_seed_(struct evutil_weakrand_state *state,
      ev_uint32_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct evutil_weakrand_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2757
    functionName: evutil_weakrand_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_int32_t
    signature: ev_int32_t evutil_weakrand_(struct evutil_weakrand_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_weakrand_
      Src: /src/libevent/evutil.c:2770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - top
    argTypes:
    - struct evutil_weakrand_state*
    - ev_int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2773
    functionName: evutil_weakrand_range_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_
    linkageType: ''
    returnType: ev_int32_t
    signature: ev_int32_t evutil_weakrand_range_(struct evutil_weakrand_state *state,
      ev_int32_t top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_memset_volatile_
      Src: /src/libevent/evutil.c:2784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mem
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2781
    functionDepth: 0
    functionLinenumber: 2781
    functionLinenumberEnd: 2785
    functionName: evutil_memclear_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_memset_volatile_
    linkageType: ''
    returnType: void
    signature: void evutil_memclear_(void *mem, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/evutil.c:2796,1
    - Dst: memcmp
      Src: /src/libevent/evutil.c:2799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2787
    functionDepth: 0
    functionLinenumber: 2787
    functionLinenumberEnd: 2802
    functionName: evutil_sockaddr_is_loopback_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - ntohl
    - memcmp
    linkageType: ''
    returnType: int
    signature: int evutil_sockaddr_is_loopback_(const struct sockaddr *addr)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2804
    functionDepth: 0
    functionLinenumber: 2804
    functionLinenumberEnd: 2827
    functionName: evutil_hex_char_to_int_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_hex_char_to_int_(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemDirectory
      Src: /src/libevent/evutil.c:2835,1
    - Dst: _tcslen
      Src: /src/libevent/evutil.c:2836,1
    - Dst: _tcscat
      Src: /src/libevent/evutil.c:2838,1
    - Dst: TEXT
      Src: /src/libevent/evutil.c:2838,1
    - Dst: _tcscat
      Src: /src/libevent/evutil.c:2839,1
    - Dst: LoadLibrary
      Src: /src/libevent/evutil.c:2840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - library_name
    argTypes:
    - TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2830
    functionDepth: 0
    functionLinenumber: 2830
    functionLinenumberEnd: 2841
    functionName: evutil_load_windows_system_library_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - LoadLibrary
    - _tcscat
    - _tcslen
    - TEXT
    - GetSystemDirectory
    linkageType: ''
    returnType: HMODULE
    signature: HMODULE evutil_load_windows_system_library_(const TCHAR *library_name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/evutil.c:2857,1
    - Dst: socket
      Src: /src/libevent/evutil.c:2864,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:2868,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2869,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:2874,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2852
    functionDepth: 3
    functionLinenumber: 2852
    functionLinenumberEnd: 2880
    functionName: evutil_socket_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - evutil_fast_socket_closeonexec
    - socket
    - evutil_fast_socket_nonblocking
    - evutil_closesocket
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evutil_socket_(int domain, int type, int protocol)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_win_socketpair
      Src: /src/libevent/evutil.c:2900,1
    - Dst: socketpair
      Src: /src/libevent/evutil.c:2902,1
    - Dst: evutil_ersatz_socketpair_
      Src: /src/libevent/evutil.c:2904,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:2910,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2911,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2912,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:2915,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2916,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2917,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:2924,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2925,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2926,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:2929,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2930,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2931,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2882
    functionDepth: 4
    functionLinenumber: 2882
    functionLinenumberEnd: 2937
    functionName: evutil_socketpair
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_fast_socket_nonblocking
    - evutil_closesocket
    - evutil_fast_socket_closeonexec
    - socketpair
    - evutil_ersatz_socketpair_
    - evutil_win_socketpair
    linkageType: ''
    returnType: int
    signature: int evutil_socketpair(int family, int type, int protocol, evutil_socket_t
      fd[2])
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:2970,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:2970,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:2975,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:2975,1
    - Dst: socket
      Src: /src/libevent/evutil.c:2979,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2982,1
    - Dst: htonl
      Src: /src/libevent/evutil.c:2984,1
    - Dst: bind
      Src: /src/libevent/evutil.c:2986,1
    - Dst: listen
      Src: /src/libevent/evutil.c:2989,1
    - Dst: socket
      Src: /src/libevent/evutil.c:2992,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2996,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:3000,1
    - Dst: connect
      Src: /src/libevent/evutil.c:3004,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evutil.c:3007,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/evutil.c:3008,1
    - Dst: accept
      Src: /src/libevent/evutil.c:3014,1
    - Dst: EVUTIL_ERR_ACCEPT_RETRIABLE
      Src: /src/libevent/evutil.c:3015,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:3022,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3029,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:3036,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/evutil.c:3039,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3041,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3043,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3045,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:3047,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 2939
    functionDepth: 1
    functionLinenumber: 2939
    functionLinenumberEnd: 3050
    functionName: evutil_ersatz_socketpair_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached:
    - EVUTIL_SOCKET_ERROR
    - connect
    - socket
    - getsockname
    - accept
    - htonl
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - ERR
    - evutil_closesocket
    - EVUTIL_ERR_ACCEPT_RETRIABLE
    - bind
    - listen
    - evutil_socket_geterror
    - memset
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: "int evutil_ersatz_socketpair_(int family, int type, int protocol,\n
      \   evutil_socket_t fd[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2952
    functionDepth: 0
    functionLinenumber: 2952
    functionLinenumberEnd: 2953
    functionName: ERR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2954
    functionDepth: 0
    functionLinenumber: 2954
    functionLinenumberEnd: 2955
    functionName: ERR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: accept4
      Src: /src/libevent/evutil.c:3066,1
    - Dst: accept
      Src: /src/libevent/evutil.c:3076,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3081,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3082,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3087,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3088,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 4
    argNames:
    - sockfd
    - addr
    - addrlen
    - flags
    argTypes:
    - evutil_socket_t
    - struct sockaddr*
    - ev_socklen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3060
    functionDepth: 3
    functionLinenumber: 3060
    functionLinenumberEnd: 3093
    functionName: evutil_accept4_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - accept
    - evutil_closesocket
    - accept4
    - evutil_fast_socket_nonblocking
    - evutil_fast_socket_closeonexec
    linkageType: ''
    returnType: evutil_socket_t
    signature: "evutil_socket_t evutil_accept4_(evutil_socket_t sockfd, struct sockaddr
      *addr,\n    ev_socklen_t *addrlen, int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/libevent/evutil.c:3112,1
    - Dst: pipe
      Src: /src/libevent/evutil.c:3116,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3117,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3118,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3119,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3120,1
    - Dst: close
      Src: /src/libevent/evutil.c:3121,1
    - Dst: close
      Src: /src/libevent/evutil.c:3122,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:3128,1
    - Dst: evutil_socketpair
      Src: /src/libevent/evutil.c:3137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3099
    functionDepth: 5
    functionLinenumber: 3099
    functionLinenumberEnd: 3142
    functionName: evutil_make_internal_pipe_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - pipe2
    - event_warn
    - close
    - evutil_fast_socket_nonblocking
    - evutil_socketpair
    - evutil_fast_socket_closeonexec
    - pipe
    linkageType: ''
    returnType: int
    signature: int evutil_make_internal_pipe_(evutil_socket_t fd[2])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/libevent/evutil.c:3154,1
    - Dst: eventfd
      Src: /src/libevent/evutil.c:3158,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3162,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3163,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3168,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3169,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - initval
    - flags
    argTypes:
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3148
    functionDepth: 3
    functionLinenumber: 3148
    functionLinenumberEnd: 3177
    functionName: evutil_eventfd_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - eventfd
    - evutil_fast_socket_closeonexec
    - evutil_closesocket
    - evutil_fast_socket_nonblocking
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evutil_eventfd_(unsigned initval, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_free_secure_rng_globals_
      Src: /src/libevent/evutil.c:3182,1
    - Dst: evutil_free_sock_err_globals
      Src: /src/libevent/evutil.c:3183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3184
      start: 3179
    functionDepth: 2
    functionLinenumber: 3179
    functionLinenumberEnd: 3184
    functionName: evutil_free_globals_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_free_sock_err_globals
    - evutil_free_secure_rng_globals_
    linkageType: ''
    returnType: void
    signature: void evutil_free_globals_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3192
      start: 3191
    functionDepth: 0
    functionLinenumber: 3191
    functionLinenumberEnd: 3192
    functionName: EVENT_KEEPALIVE_FACTOR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_KEEPALIVE_FACTOR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:3373,1
    - Dst: strsignal
      Src: /src/libevent/evutil.c:3376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3369
    functionDepth: 2
    functionLinenumber: 3369
    functionLinenumberEnd: 3378
    functionName: evutil_strsignal
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - strsignal
    - evutil_snprintf
    linkageType: ''
    returnType: char
    signature: char * evutil_strsignal(int sig)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: event_strlcpy_
    functionSourceFile: /src/libevent/strlcpy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t event_strlcpy_(char *dst, const char *src, size_t siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event_map_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: hashsocket
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned hashsocket(struct event_map_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct event_map_entry*
    - struct event_map_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: eqsocket
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eqsocket(struct event_map_entry *e1, struct event_map_entry *e2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: GET_IO_SLOT
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT(x, map, slot, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - ','
    - ctor
    - ','
    - fdinfo_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: GET_IO_SLOT_AND_CTOR
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT_AND_CTOR(x, map, slot, type, ctor, fdinfo_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HT_INIT
      Src: /src/libevent/evmap.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: evmap_io_initmap_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - HT_INIT
    linkageType: ''
    returnType: void
    signature: void evmap_io_initmap_(struct event_io_map *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HT_START
      Src: /src/libevent/evmap.c:150,1
    - Dst: HT_NEXT_RMV
      Src: /src/libevent/evmap.c:152,1
    - Dst: mm_free
      Src: /src/libevent/evmap.c:153,1
    - Dst: HT_CLEAR
      Src: /src/libevent/evmap.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: evmap_io_clear_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - HT_CLEAR
    - HT_START
    - HT_NEXT_RMV
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evmap_io_clear_(struct event_io_map *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: GET_SIGNAL_SLOT
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SIGNAL_SLOT(x, map, slot, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - ','
    - ctor
    - ','
    - fdinfo_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: GET_SIGNAL_SLOT_AND_CTOR
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SIGNAL_SLOT_AND_CTOR(x, map, slot, type, ctor, fdinfo_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: GET_IO_SLOT
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT(x,map,slot,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - ','
    - ctor
    - ','
    - fdinfo_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: GET_IO_SLOT_AND_CTOR
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT_AND_CTOR(x,map,slot,type,ctor,fdinfo_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evmap_signal_initmap_
      Src: /src/libevent/evmap.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: evmap_io_initmap_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_initmap_
    linkageType: ''
    returnType: void
    signature: void evmap_io_initmap_(struct event_io_map* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evmap_signal_clear_
      Src: /src/libevent/evmap.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: evmap_io_clear_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_clear_
    linkageType: ''
    returnType: void
    signature: void evmap_io_clear_(struct event_io_map* ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/evmap.c:220,1
    - Dst: memset
      Src: /src/libevent/evmap.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - map
    - slot
    - msize
    argTypes:
    - struct event_signal_map*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 232
    functionName: evmap_make_space
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - memset
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int evmap_make_space(struct event_signal_map *map, int slot, int msize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_signal_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: evmap_signal_initmap_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evmap_signal_initmap_(struct event_signal_map *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evmap.c:248,1
    - Dst: mm_free
      Src: /src/libevent/evmap.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_signal_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: evmap_signal_clear_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 1
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evmap_signal_clear_(struct event_signal_map *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/libevent/evmap.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct evmap_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: evmap_io_init
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void evmap_io_init(struct evmap_io *entry)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:282,1
    - Dst: evmap_make_space
      Src: /src/libevent/evmap.c:289,1
    - Dst: GET_IO_SLOT_AND_CTOR
      Src: /src/libevent/evmap.c:293,1
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evmap.c:319,1
    - Dst: event_warnx
      Src: /src/libevent/evmap.c:320,1
    - Dst: EVENT_DEBUG_MODE_IS_ON
      Src: /src/libevent/evmap.c:324,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:325,1
    - Dst: event_warnx
      Src: /src/libevent/evmap.c:327,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:337,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/evmap.c:346,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 3
    argNames:
    - base
    - fd
    - ev
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 349
    functionName: evmap_io_add_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - struct eventop*::add
    - LIST_FIRST
    - EVUTIL_ASSERT
    - event_warnx
    - LIST_INSERT_HEAD
    - evmap_make_space
    - EVUTIL_UNLIKELY
    - GET_IO_SLOT_AND_CTOR
    - EVENT_DEBUG_MODE_IS_ON
    linkageType: ''
    returnType: int
    signature: int evmap_io_add_(struct event_base *base, evutil_socket_t fd, struct
      event *ev)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:365,1
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:372,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:388,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:393,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:398,1
    - Dst: struct eventop*::del
      Src: /src/libevent/evmap.c:403,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/evmap.c:414,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - base
    - fd
    - ev
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 417
    functionName: evmap_io_del_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - GET_IO_SLOT
    - struct eventop*::del
    - EVUTIL_ASSERT
    - LIST_REMOVE
    linkageType: ''
    returnType: int
    signature: int evmap_io_del_(struct event_base *base, evutil_socket_t fd, struct
      event *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:430,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:434,1
    - Dst: event_active_nolock_
      Src: /src/libevent/evmap.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - base
    - fd
    - events
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 438
    functionName: evmap_io_active_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - GET_IO_SLOT
    - LIST_FOREACH
    - event_active_nolock_
    linkageType: ''
    returnType: void
    signature: void evmap_io_active_(struct event_base *base, evutil_socket_t fd,
      short events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/libevent/evmap.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct evmap_signal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: evmap_signal_init
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void evmap_signal_init(struct evmap_signal *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evmap_make_space
      Src: /src/libevent/evmap.c:460,1
    - Dst: GET_SIGNAL_SLOT_AND_CTOR
      Src: /src/libevent/evmap.c:464,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/evmap.c:467,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:468,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/evmap.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - base
    - sig
    - ev
    argTypes:
    - struct event_base*
    - int
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 476
    functionName: evmap_signal_add_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_EMPTY
    - LIST_INSERT_HEAD
    - GET_SIGNAL_SLOT_AND_CTOR
    - evmap_make_space
    - struct eventop*::add
    linkageType: ''
    returnType: int
    signature: int evmap_signal_add_(struct event_base *base, int sig, struct event
      *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_SIGNAL_SLOT
      Src: /src/libevent/evmap.c:488,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/evmap.c:490,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:492,1
    - Dst: struct eventop*::del
      Src: /src/libevent/evmap.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - base
    - sig
    - ev
    argTypes:
    - struct event_base*
    - int
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 498
    functionName: evmap_signal_del_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - struct eventop*::del
    - LIST_REMOVE
    - LIST_FIRST
    - GET_SIGNAL_SLOT
    linkageType: ''
    returnType: int
    signature: int evmap_signal_del_(struct event_base *base, int sig, struct event
      *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_SIGNAL_SLOT
      Src: /src/libevent/evmap.c:509,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:513,1
    - Dst: event_active_nolock_
      Src: /src/libevent/evmap.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - base
    - sig
    - ncalls
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: evmap_signal_active_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - event_active_nolock_
    - GET_SIGNAL_SLOT
    linkageType: ''
    returnType: void
    signature: void evmap_signal_active_(struct event_base *base, evutil_socket_t
      sig, int ncalls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - map
    - fd
    argTypes:
    - struct event_io_map*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: evmap_io_get_fdinfo_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - GET_IO_SLOT
    linkageType: ''
    returnType: void
    signature: 'void *

      evmap_io_get_fdinfo_(struct event_io_map *map, evutil_socket_t fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libevent/evmap.c:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 568
    functionName: HT_FOREACH
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: void
    signature: void HT_FOREACH(mapent, event_io_map, iomap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libevent/evmap.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - evmap_signal_foreach_signal_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 601
    functionName: evmap_signal_foreach_signal
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_foreach_signal(struct event_base *base,\n    evmap_signal_foreach_signal_cb
      fn,\n    void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:615,1
    - Dst: memset
      Src: /src/libevent/evmap.c:625,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:627,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:630,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - base
    - fd
    - ctx
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 634
    functionName: evmap_io_reinit_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - struct eventop*::add
    - EVUTIL_ASSERT
    - LIST_FIRST
    - memset
    linkageType: ''
    returnType: int
    signature: "int evmap_io_reinit_iter_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *ctx, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_EMPTY
      Src: /src/libevent/evmap.c:645,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:646,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - base
    - signum
    - ctx
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 651
    functionName: evmap_signal_reinit_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_EMPTY
    - struct eventop*::add
    - LIST_FIRST
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_reinit_iter_fn(struct event_base *base,\n    int
      signum, struct evmap_signal *ctx, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:658,1
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 665
    functionName: evmap_reinit_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_foreach_signal
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: int
    signature: int evmap_reinit_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:672,1
    - Dst: event_del
      Src: /src/libevent/evmap.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dlist
    argTypes:
    - struct event_dlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 675
    functionName: delete_all_in_dlist
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_del
    - LIST_FIRST
    linkageType: ''
    returnType: int
    signature: int delete_all_in_dlist(struct event_dlist *dlist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delete_all_in_dlist
      Src: /src/libevent/evmap.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - base
    - fd
    - io_info
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 683
    functionName: evmap_io_delete_all_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - delete_all_in_dlist
    linkageType: ''
    returnType: int
    signature: "int evmap_io_delete_all_iter_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *io_info, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delete_all_in_dlist
      Src: /src/libevent/evmap.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - base
    - signum
    - sig_info
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 691
    functionName: evmap_signal_delete_all_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - delete_all_in_dlist
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_delete_all_iter_fn(struct event_base *base, int signum,\n
      \   struct evmap_signal *sig_info, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:696,1
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    functionName: evmap_delete_all_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_foreach_signal
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: void
    signature: void evmap_delete_all_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - changelist
    argTypes:
    - struct event_changelist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: event_changelist_init_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_changelist_init_(struct event_changelist *changelist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_SIGNAL_SLOT
      Src: /src/libevent/evmap.c:724,1
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - base
    - change
    argTypes:
    - struct event_base*
    - struct event_change*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 732
    functionName: event_change_get_fdinfo
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - GET_IO_SLOT
    - GET_SIGNAL_SLOT
    linkageType: ''
    returnType: struct event_changelist_fdinfo
    signature: "struct event_changelist_fdinfo *\nevent_change_get_fdinfo(struct event_base
      *base,\n    const struct event_change *change)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - base
    - fd
    - io
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 749
    functionName: event_changelist_assert_ok_foreach_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: int
    signature: "int event_changelist_assert_ok_foreach_iter_fn(\n\tstruct event_base
      *base,\n\tevutil_socket_t fd, struct evmap_io *io, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:758,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:762,1
    - Dst: event_change_get_fdinfo
      Src: /src/libevent/evmap.c:763,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:764,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:765,1
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 771
    functionName: event_changelist_assert_ok
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_change_get_fdinfo
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: void
    signature: void event_changelist_assert_ok(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 775
    functionName: event_changelist_check
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_changelist_check(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 777
    functionName: event_changelist_check
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_changelist_check(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:785,1
    - Dst: event_change_get_fdinfo
      Src: /src/libevent/evmap.c:790,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:791,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - changelist
    - base
    argTypes:
    - struct event_changelist*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 798
    functionName: event_changelist_remove_all_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_check
    - EVUTIL_ASSERT
    - event_change_get_fdinfo
    linkageType: ''
    returnType: void
    signature: "void event_changelist_remove_all_(struct event_changelist *changelist,\n
      \   struct event_base *base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evmap.c:804,1
    - Dst: event_changelist_init_
      Src: /src/libevent/evmap.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - changelist
    argTypes:
    - struct event_changelist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 806
    functionName: event_changelist_freemem_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_init_
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_changelist_freemem_(struct event_changelist *changelist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/evmap.c:819,1
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evmap.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - changelist
    argTypes:
    - struct event_changelist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 829
    functionName: event_changelist_grow
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UNLIKELY
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int event_changelist_grow(struct event_changelist *changelist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:845,1
    - Dst: event_changelist_grow
      Src: /src/libevent/evmap.c:848,1
    - Dst: memset
      Src: /src/libevent/evmap.c:856,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - changelist
    - fd
    - old_events
    - fdinfo
    argTypes:
    - struct event_changelist*
    - evutil_socket_t
    - short
    - struct event_changelist_fdinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 864
    functionName: event_changelist_get_or_construct
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - memset
    - event_changelist_grow
    linkageType: ''
    returnType: struct event_change
    signature: "struct event_change *\nevent_changelist_get_or_construct(struct event_changelist
      *changelist,\n    evutil_socket_t fd,\n    short old_events,\n    struct event_changelist_fdinfo
      *fdinfo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:875,1
    - Dst: event_changelist_get_or_construct
      Src: /src/libevent/evmap.c:877,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 894
    functionName: event_changelist_add_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_check
    - event_changelist_get_or_construct
    linkageType: ''
    returnType: int
    signature: "int event_changelist_add_(struct event_base *base, evutil_socket_t
      fd, short old, short events,\n    void *p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:905,1
    - Dst: event_changelist_get_or_construct
      Src: /src/libevent/evmap.c:906,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:907,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:945,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 947
    functionName: event_changelist_del_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_check
    - event_changelist_get_or_construct
    linkageType: ''
    returnType: int
    signature: "int event_changelist_del_(struct event_base *base, evutil_socket_t
      fd, short old, short events,\n    void *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT_LIST_OK
      Src: /src/libevent/evmap.c:961,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:963,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:964,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:965,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:966,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:967,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:976,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:977,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - base
    - fd
    - io_info
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 981
    functionName: evmap_io_check_integrity_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - EVUTIL_ASSERT
    - EVUTIL_ASSERT_LIST_OK
    linkageType: ''
    returnType: int
    signature: "int evmap_io_check_integrity_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *io_info, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT_LIST_OK
      Src: /src/libevent/evmap.c:991,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:993,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:994,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:995,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:996,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - base
    - signum
    - sig_info
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1000
    functionName: evmap_signal_check_integrity_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - EVUTIL_ASSERT
    - EVUTIL_ASSERT_LIST_OK
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_check_integrity_fn(struct event_base *base,\n    int
      signum, struct evmap_signal *sig_info, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:1005,1
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:1006,1
    - Dst: event_changelist_assert_ok
      Src: /src/libevent/evmap.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1010
    functionName: evmap_check_integrity_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_assert_ok
    - evmap_signal_foreach_signal
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: void
    signature: void evmap_check_integrity_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:1028,1
    - Dst: struct evmap_foreach_event_helper*::fn
      Src: /src/libevent/evmap.c:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - base
    - fd
    - io_info
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1033
    functionName: evmap_io_foreach_event_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - struct evmap_foreach_event_helper*::fn
    linkageType: ''
    returnType: int
    signature: "int evmap_io_foreach_event_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *io_info, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:1044,1
    - Dst: struct evmap_foreach_event_helper*::fn
      Src: /src/libevent/evmap.c:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - base
    - signum
    - sig_info
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1049
    functionName: evmap_signal_foreach_event_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - struct evmap_foreach_event_helper*::fn
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_foreach_event_fn(struct event_base *base, int signum,\n
      \   struct evmap_signal *sig_info, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:1059,1
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - event_base_foreach_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1062
    functionName: evmap_foreach_event_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_foreach_signal
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: int
    signature: "int evmap_foreach_event_(struct event_base *base,\n    event_base_foreach_event_cb
      fn, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: sigfd_init_
    functionSourceFile: /src/libevent/evsignal-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigfd_init_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: EV_CHECK_FMT
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_CHECK_FMT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: event_debug_get_logging_mask_
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug_get_logging_mask_()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: event_debug_get_logging_mask_
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug_get_logging_mask_()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: event_debug
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: event_debug
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/ws.c:97,1
    - Dst: bufferevent_free
      Src: /src/libevent/ws.c:102,1
    - Dst: evbuffer_free
      Src: /src/libevent/ws.c:105,1
    - Dst: mm_free
      Src: /src/libevent/ws.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - evws
    argTypes:
    - struct evws_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: evws_connection_free
    functionSourceFile: /src/libevent/ws.c
    functionUses: 1
    functionsReached:
    - evbuffer_free
    - bufferevent_free
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evws_connection_free(struct evws_connection *evws)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - encoded
    - string
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 144
    functionName: Base64encode
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Base64encode(char *encoded, const char *string, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libevent/ws.c:152,1
    - Dst: builtin_SHA1
      Src: /src/libevent/ws.c:154,1
    - Dst: strlen
      Src: /src/libevent/ws.c:154,1
    - Dst: Base64encode
      Src: /src/libevent/ws.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ws_key
    - out
    argTypes:
    - char*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: ws_gen_accept_key
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - strlen
    - builtin_SHA1
    - Base64encode
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      ws_gen_accept_key(const char *ws_key, char out[32])'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/ws.c:162,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/ws.c:162,1
    - Dst: evws_connection_free
      Src: /src/libevent/ws.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: close_after_write_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_connection_free
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void close_after_write_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_connection_free
      Src: /src/libevent/ws.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: close_event_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_connection_free
    linkageType: ''
    returnType: void
    signature: void close_event_cb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/ws.c:185,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/ws.c:186,1
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:187,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/ws.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evws
    - reason
    argTypes:
    - struct evws_connection*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 192
    functionName: evws_close
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - bufferevent_setcb
    - htons
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void evws_close(struct evws_connection *evws, uint16_t reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_close
      Src: /src/libevent/ws.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evws
    argTypes:
    - struct evws_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: evws_force_disconnect_
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_close
    linkageType: ''
    returnType: void
    signature: void evws_force_disconnect_(struct evws_connection *evws)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/ws.c:232,1
    - Dst: ntohs
      Src: /src/libevent/ws.c:233,1
    - Dst: event_warn
      Src: /src/libevent/ws.c:248,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - in_buffer
    - buf_len
    - payload_ptr
    - out_len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 291
    functionName: get_ws_frame
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - ntohs
    - event_warn
    - memcpy
    linkageType: ''
    returnType: enum WebSocketFrameType
    signature: "enum WebSocketFrameType get_ws_frame(unsigned char *in_buffer, size_t
      buf_len,\n\tunsigned char **payload_ptr, size_t *out_len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/ws.c:301,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/ws.c:303,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/ws.c:304,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/ws.c:305,1
    - Dst: get_ws_frame
      Src: /src/libevent/ws.c:310,1
    - Dst: evbuffer_drain
      Src: /src/libevent/ws.c:316,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/ws.c:317,1
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:325,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/ws.c:327,1
    - Dst: struct evws_connection*::cb
      Src: /src/libevent/ws.c:329,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/ws.c:330,1
    - Dst: evbuffer_free
      Src: /src/libevent/ws.c:331,1
    - Dst: struct evws_connection*::cb
      Src: /src/libevent/ws.c:334,1
    - Dst: evbuffer_new
      Src: /src/libevent/ws.c:341,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/ws.c:343,1
    - Dst: evws_force_disconnect_
      Src: /src/libevent/ws.c:347,1
    - Dst: event_warn
      Src: /src/libevent/ws.c:354,1
    - Dst: evws_force_disconnect_
      Src: /src/libevent/ws.c:355,1
    - Dst: evbuffer_drain
      Src: /src/libevent/ws.c:357,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/ws.c:361,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - bufev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 362
    functionName: ws_evhttp_read_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_force_disconnect_
    - evbuffer_new
    - event_warn
    - evbuffer_add
    - bufferevent_incref_and_lock_
    - get_ws_frame
    - bufferevent_decref_and_unlock_
    - evbuffer_remove_buffer
    - bufferevent_get_input
    - struct evws_connection*::cb
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_drain
    - evbuffer_pullup
    linkageType: ''
    returnType: void
    signature: void ws_evhttp_read_cb(struct bufferevent *bufev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_after_write_cb
      Src: /src/libevent/ws.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: ws_evhttp_error_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - close_after_write_cb
    linkageType: ''
    returnType: void
    signature: void ws_evhttp_error_cb(struct bufferevent *bufev, short what, void
      *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/ws.c:383,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:384,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/ws.c:385,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:388,1
    - Dst: evutil_ascii_strcasestr
      Src: /src/libevent/ws.c:389,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:392,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/ws.c:396,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:397,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:398,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:400,1
    - Dst: ws_gen_accept_key
      Src: /src/libevent/ws.c:401,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:403,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:405,1
    - Dst: mm_calloc
      Src: /src/libevent/ws.c:407,1
    - Dst: event_warn
      Src: /src/libevent/ws.c:408,1
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/ws.c:415,1
    - Dst: evhttp_start_ws_
      Src: /src/libevent/ws.c:418,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/ws.c:424,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/ws.c:428,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/ws.c:431,1
    - Dst: evws_connection_free
      Src: /src/libevent/ws.c:438,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/ws.c:440,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - req
    - cb
    - arg
    - options
    argTypes:
    - struct evhttp_request*
    - ws_on_msg_cb
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 442
    functionName: evws_new_session
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - evutil_ascii_strcasecmp
    - event_warn
    - evhttp_start_ws_
    - bufferevent_enable_locking_
    - evws_connection_free
    - ws_gen_accept_key
    - evhttp_add_header
    - evhttp_send_reply
    - evhttp_request_get_connection
    - evhttp_request_get_input_headers
    - evutil_ascii_strcasestr
    - evhttp_find_header
    - TAILQ_INSERT_TAIL
    - bufferevent_setcb
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: struct evws_connection
    signature: "struct evws_connection *\nevws_new_session(\n\tstruct evhttp_request
      *req, ws_on_msg_cb cb, void *arg, int options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:467,1
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - output
    - frame_type
    - msg
    - len
    argTypes:
    - struct evbuffer*
    - enum WebSocketFrameType
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 469
    functionName: make_ws_frame
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    linkageType: ''
    returnType: void
    signature: "void make_ws_frame(struct evbuffer *output, enum WebSocketFrameType
      frame_type,\n\tunsigned char *msg, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_lock
      Src: /src/libevent/ws.c:477,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/ws.c:478,1
    - Dst: make_ws_frame
      Src: /src/libevent/ws.c:479,1
    - Dst: bufferevent_unlock
      Src: /src/libevent/ws.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - evws
    - frame_type
    - packet_str
    - str_len
    argTypes:
    - struct evws_connection*
    - enum WebSocketFrameType
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 481
    functionName: evws_send
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - make_ws_frame
    - bufferevent_lock
    - bufferevent_get_output
    - bufferevent_unlock
    linkageType: ''
    returnType: void
    signature: "void evws_send(struct evws_connection *evws, enum WebSocketFrameType
      frame_type,\n\tconst char *packet_str, size_t str_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_send
      Src: /src/libevent/ws.c:486,1
    - Dst: strlen
      Src: /src/libevent/ws.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evws
    - packet_str
    argTypes:
    - struct evws_connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: evws_send_text
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - strlen
    - evws_send
    linkageType: ''
    returnType: void
    signature: void evws_send_text(struct evws_connection *evws, const char *packet_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_send
      Src: /src/libevent/ws.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - evws
    - packet_data
    - packet_len
    argTypes:
    - struct evws_connection*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: evws_send_binary
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_send
    linkageType: ''
    returnType: void
    signature: "void evws_send_binary(\n\tstruct evws_connection *evws, const char
      *packet_data, size_t packet_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - evws
    - cb
    - cbarg
    argTypes:
    - struct evws_connection*
    - ws_on_close_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: evws_connection_set_closecb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evws_connection_set_closecb(\n\tstruct evws_connection *evws,
      ws_on_close_cb cb, void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evws
    argTypes:
    - struct evws_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: evws_connection_get_bufferevent
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      evws_connection_get_bufferevent(struct evws_connection *evws)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - listener
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: LOCK
    functionSourceFile: /src/libevent/listener.c
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK(listener)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - listener
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: UNLOCK
    functionSourceFile: /src/libevent/listener.c
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK(listener)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: listener_incref_and_lock
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    linkageType: ''
    returnType: void
    signature: void listener_incref_and_lock(struct evconnlistener *listener)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct evconnlistener*::ops::destroy
      Src: /src/libevent/listener.c:140,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:141,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/listener.c:142,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:143,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: listener_decref_and_unlock
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - struct evconnlistener*::ops::destroy
    - UNLOCK
    - EVTHREAD_FREE_LOCK
    - mm_free
    linkageType: ''
    returnType: int
    signature: int listener_decref_and_unlock(struct evconnlistener *listener)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/listener.c:170,1
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/listener.c:172,1
    - Dst: evconnlistener_new_async
      Src: /src/libevent/listener.c:174,1
    - Dst: listen
      Src: /src/libevent/listener.c:180,1
    - Dst: listen
      Src: /src/libevent/listener.c:183,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:187,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/listener.c:204,1
    - Dst: event_assign
      Src: /src/libevent/listener.c:207,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/listener.c:211,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 6
    argNames:
    - base
    - cb
    - ptr
    - flags
    - backlog
    - fd
    argTypes:
    - struct event_base*
    - evconnlistener_cb
    - void*
    - unsigned
    - int
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 214
    functionName: evconnlistener_new
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - evconnlistener_enable
    - evconnlistener_new_async
    - mm_calloc
    - event_assign
    - event_get_win32_extension_fns_
    - listen
    - event_base_get_iocp_
    - EVTHREAD_ALLOC_LOCK
    linkageType: ''
    returnType: struct evconnlistener
    signature: "struct evconnlistener *\nevconnlistener_new(struct event_base *base,\n
      \   evconnlistener_cb cb, void *ptr, unsigned flags, int backlog,\n    evutil_socket_t
      fd)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_
      Src: /src/libevent/listener.c:232,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/listener.c:242,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:254,1
    - Dst: evutil_make_listen_socket_reuseable
      Src: /src/libevent/listener.c:257,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:269,1
    - Dst: evutil_make_listen_socket_reuseable_port
      Src: /src/libevent/listener.c:272,1
    - Dst: evutil_make_tcp_listen_socket_deferred
      Src: /src/libevent/listener.c:277,1
    - Dst: evutil_make_listen_socket_ipv6only
      Src: /src/libevent/listener.c:282,1
    - Dst: evutil_make_listen_socket_not_ipv6only
      Src: /src/libevent/listener.c:287,1
    - Dst: bind
      Src: /src/libevent/listener.c:292,1
    - Dst: evconnlistener_new
      Src: /src/libevent/listener.c:296,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/listener.c:303,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:304,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/listener.c:306,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 63
    argCount: 7
    argNames:
    - base
    - cb
    - ptr
    - flags
    - backlog
    - sa
    - socklen
    argTypes:
    - struct event_base*
    - evconnlistener_cb
    - void*
    - unsigned
    - int
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 309
    functionName: evconnlistener_new_bind
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - evutil_set_tcp_keepalive
    - evutil_socket_
    - evconnlistener_new
    - evutil_closesocket
    - evutil_make_tcp_listen_socket_deferred
    - evutil_make_listen_socket_reuseable
    - evutil_make_listen_socket_ipv6only
    - bind
    - EVUTIL_SOCKET_ERROR
    - evutil_make_listen_socket_not_ipv6only
    - evutil_make_listen_socket_reuseable_port
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: struct evconnlistener
    signature: "struct evconnlistener *\nevconnlistener_new_bind(struct event_base
      *base, evconnlistener_cb cb,\n    void *ptr, unsigned flags, int backlog, const
      struct sockaddr *sa,\n    int socklen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:314,1
    - Dst: struct evconnlistener*::ops::shutdown
      Src: /src/libevent/listener.c:318,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: evconnlistener_free
    functionSourceFile: /src/libevent/listener.c
    functionUses: 3
    functionsReached:
    - LOCK
    - listener_decref_and_unlock
    - struct evconnlistener*::ops::shutdown
    linkageType: ''
    returnType: void
    signature: void evconnlistener_free(struct evconnlistener *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:326,1
    - Dst: event_del
      Src: /src/libevent/listener.c:328,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:330,1
    - Dst: event_get_fd
      Src: /src/libevent/listener.c:330,1
    - Dst: event_debug_unassign
      Src: /src/libevent/listener.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: event_listener_destroy
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - event_debug_unassign
    - evutil_closesocket
    - event_del
    - event_get_fd
    linkageType: ''
    returnType: void
    signature: void event_listener_destroy(struct evconnlistener *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:338,1
    - Dst: struct evconnlistener*::ops::enable
      Src: /src/libevent/listener.c:341,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: evconnlistener_enable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - UNLOCK
    - struct evconnlistener*::ops::enable
    linkageType: ''
    returnType: int
    signature: int evconnlistener_enable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:352,1
    - Dst: struct evconnlistener*::ops::disable
      Src: /src/libevent/listener.c:354,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: evconnlistener_disable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - UNLOCK
    - struct evconnlistener*::ops::disable
    linkageType: ''
    returnType: int
    signature: int evconnlistener_disable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:363,1
    - Dst: event_add
      Src: /src/libevent/listener.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: event_listener_enable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - event_add
    linkageType: ''
    returnType: int
    signature: int event_listener_enable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:371,1
    - Dst: event_del
      Src: /src/libevent/listener.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: event_listener_disable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - event_del
    linkageType: ''
    returnType: int
    signature: int event_listener_disable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:379,1
    - Dst: struct evconnlistener*::ops::getfd
      Src: /src/libevent/listener.c:380,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 383
    functionName: evconnlistener_get_fd
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - UNLOCK
    - struct evconnlistener*::ops::getfd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evconnlistener_get_fd(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:389,1
    - Dst: event_get_fd
      Src: /src/libevent/listener.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: event_listener_getfd
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - event_get_fd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t event_listener_getfd(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:397,1
    - Dst: struct evconnlistener*::ops::getbase
      Src: /src/libevent/listener.c:398,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: evconnlistener_get_base
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - UNLOCK
    - struct evconnlistener*::ops::getbase
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      evconnlistener_get_base(struct evconnlistener *lev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:407,1
    - Dst: event_get_base
      Src: /src/libevent/listener.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 409
    functionName: event_listener_getbase
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - event_get_base
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_listener_getbase(struct evconnlistener *lev)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:416,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/listener.c:422,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - lev
    - cb
    - arg
    argTypes:
    - struct evconnlistener*
    - evconnlistener_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: evconnlistener_set_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - evconnlistener_enable
    - UNLOCK
    linkageType: ''
    returnType: void
    signature: "void evconnlistener_set_cb(struct evconnlistener *lev,\n    evconnlistener_cb
      cb, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:430,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lev
    - errorcb
    argTypes:
    - struct evconnlistener*
    - evconnlistener_errorcb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 433
    functionName: evconnlistener_set_error_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - UNLOCK
    linkageType: ''
    returnType: void
    signature: "void evconnlistener_set_error_cb(struct evconnlistener *lev,\n    evconnlistener_errorcb
      errorcb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:443,1
    - Dst: evutil_accept4_
      Src: /src/libevent/listener.c:447,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:453,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:458,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:459,1
    - Dst: cb
      Src: /src/libevent/listener.c:465,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:468,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/listener.c:469,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:475,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/listener.c:479,1
    - Dst: EVUTIL_ERR_ACCEPT_RETRIABLE
      Src: /src/libevent/listener.c:480,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:481,1
    - Dst: errorcb
      Src: /src/libevent/listener.c:488,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:489,1
    - Dst: event_sock_warn
      Src: /src/libevent/listener.c:491,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:492,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - fd
    - what
    - p
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 494
    functionName: listener_read_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - listener_decref_and_unlock
    - UNLOCK
    - cb
    - event_sock_warn
    - EVUTIL_ASSERT
    - evutil_closesocket
    - EVUTIL_ERR_ACCEPT_RETRIABLE
    - evutil_socket_geterror
    - errorcb
    - evutil_accept4_
    linkageType: ''
    returnType: void
    signature: void listener_read_cb(evutil_socket_t fd, short what, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_add_virtual_
      Src: /src/libevent/listener.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener_iocp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: iocp_listener_event_add
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_base_add_virtual_
    linkageType: ''
    returnType: void
    signature: void iocp_listener_event_add(struct evconnlistener_iocp *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_del_virtual_
      Src: /src/libevent/listener.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener_iocp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 532
    functionName: iocp_listener_event_del
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_base_del_virtual_
    linkageType: ''
    returnType: void
    signature: void iocp_listener_event_del(struct evconnlistener_iocp *lev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/listener.c:546,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:553,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/listener.c:557,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/listener.c:563,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/listener.c:564,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/listener.c:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - lev
    - family
    argTypes:
    - struct evconnlistener_iocp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 570
    functionName: new_accepting_socket
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_overlapped_init_
    - event_base_get_npriorities
    - mm_calloc
    - InitializeCriticalSectionAndSpinCount
    - event_deferred_cb_init_
    - evutil_check_working_afunix_
    linkageType: ''
    returnType: struct accepting_socket
    signature: 'struct accepting_socket *

      new_accepting_socket(struct evconnlistener_iocp *lev, int family)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/libevent/listener.c:577,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:579,1
    - Dst: DeleteCriticalSection
      Src: /src/libevent/listener.c:580,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct accepting_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: free_and_unlock_accepting_socket
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - DeleteCriticalSection
    - closesocket
    - mm_free
    linkageType: ''
    returnType: void
    signature: void free_and_unlock_accepting_socket(struct accepting_socket *as)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/listener.c:588,1
    - Dst: socket
      Src: /src/libevent/listener.c:590,1
    - Dst: WSAGetLastError
      Src: /src/libevent/listener.c:597,1
    - Dst: setsockopt
      Src: /src/libevent/listener.c:603,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/listener.c:607,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/listener.c:609,1
    - Dst: closesocket
      Src: /src/libevent/listener.c:610,1
    - Dst: struct win32_extension_fns*::AcceptEx
      Src: /src/libevent/listener.c:616,1
    - Dst: accepted_socket_cb
      Src: /src/libevent/listener.c:620,1
    - Dst: WSAGetLastError
      Src: /src/libevent/listener.c:622,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/listener.c:632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct accepting_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 636
    functionName: start_accepting
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_iocp_port_associate_
    - setsockopt
    - WSAGetLastError
    - socket
    - evutil_make_socket_nonblocking
    - event_get_win32_extension_fns_
    - accepted_socket_cb
    - event_deferred_cb_schedule_
    - closesocket
    - struct win32_extension_fns*::AcceptEx
    linkageType: ''
    returnType: int
    signature: int start_accepting(struct accepting_socket *as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/libevent/listener.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct accepting_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 645
    functionName: stop_accepting
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - closesocket
    linkageType: ''
    returnType: void
    signature: void stop_accepting(struct accepting_socket *as)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/listener.c:654,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/listener.c:662,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:664,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:665,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:667,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:668,1
    - Dst: struct win32_extension_fns*::GetAcceptExSockaddrs
      Src: /src/libevent/listener.c:679,1
    - Dst: setsockopt
      Src: /src/libevent/listener.c:690,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:695,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:696,1
    - Dst: WSASetLastError
      Src: /src/libevent/listener.c:699,1
    - Dst: errorcb
      Src: /src/libevent/listener.c:700,1
    - Dst: cb
      Src: /src/libevent/listener.c:702,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:705,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:706,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:709,1
    - Dst: start_accepting
      Src: /src/libevent/listener.c:710,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - dcb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 712
    functionName: accepted_socket_invoke_user_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - listener_decref_and_unlock
    - UNLOCK
    - setsockopt
    - cb
    - LeaveCriticalSection
    - WSASetLastError
    - EVUTIL_ASSERT
    - struct win32_extension_fns*::GetAcceptExSockaddrs
    - EnterCriticalSection
    - event_get_win32_extension_fns_
    - errorcb
    - start_accepting
    - free_and_unlock_accepting_socket
    linkageType: ''
    returnType: void
    signature: void accepted_socket_invoke_user_cb(struct event_callback *dcb, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:718,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:720,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:721,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/listener.c:724,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:727,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:730,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:731,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:735,1
    - Dst: event_sock_warn
      Src: /src/libevent/listener.c:740,1
    - Dst: WSAGetOverlappedResult
      Src: /src/libevent/listener.c:741,1
    - Dst: WSAGetLastError
      Src: /src/libevent/listener.c:747,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/listener.c:749,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:752,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - o
    - key
    - n
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 755
    functionName: accepted_socket_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - EVUTIL_UPCAST
    - listener_decref_and_unlock
    - UNLOCK
    - event_sock_warn
    - LeaveCriticalSection
    - WSAGetLastError
    - EnterCriticalSection
    - WSAGetOverlappedResult
    - event_deferred_cb_schedule_
    - free_and_unlock_accepting_socket
    linkageType: ''
    returnType: void
    signature: void accepted_socket_cb(struct event_overlapped *o, ev_uintptr_t key,
      ev_ssize_t n, int ok)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:762,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:764,1
    - Dst: iocp_listener_event_add
      Src: /src/libevent/listener.c:765,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:770,1
    - Dst: start_accepting
      Src: /src/libevent/listener.c:772,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:773,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 777
    functionName: iocp_listener_enable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - iocp_listener_event_add
    - LOCK
    - EVUTIL_UPCAST
    - UNLOCK
    - LeaveCriticalSection
    - EnterCriticalSection
    - start_accepting
    linkageType: ''
    returnType: int
    signature: int iocp_listener_enable(struct evconnlistener *lev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:784,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:786,1
    - Dst: iocp_listener_event_del
      Src: /src/libevent/listener.c:787,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:792,1
    - Dst: stop_accepting
      Src: /src/libevent/listener.c:796,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:798,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:802,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - lev
    - shutdown
    argTypes:
    - struct evconnlistener*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 806
    functionName: iocp_listener_disable_impl
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - EVUTIL_UPCAST
    - UNLOCK
    - stop_accepting
    - LeaveCriticalSection
    - iocp_listener_event_del
    - EnterCriticalSection
    - evutil_closesocket
    linkageType: ''
    returnType: int
    signature: int iocp_listener_disable_impl(struct evconnlistener *lev, int shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iocp_listener_disable_impl
      Src: /src/libevent/listener.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 812
    functionName: iocp_listener_disable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - iocp_listener_disable_impl
    linkageType: ''
    returnType: int
    signature: int iocp_listener_disable(struct evconnlistener *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:818,1
    - Dst: iocp_listener_disable_impl
      Src: /src/libevent/listener.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 825
    functionName: iocp_listener_destroy
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - iocp_listener_disable_impl
    linkageType: ''
    returnType: void
    signature: void iocp_listener_destroy(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 833
    functionName: iocp_listener_getfd
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t iocp_listener_getfd(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 840
    functionName: iocp_listener_getbase
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      iocp_listener_getbase(struct evconnlistener *lev)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/listener.c:866,1
    - Dst: listen
      Src: /src/libevent/listener.c:871,1
    - Dst: listen
      Src: /src/libevent/listener.c:874,1
    - Dst: getsockname
      Src: /src/libevent/listener.c:877,1
    - Dst: event_sock_warn
      Src: /src/libevent/listener.c:878,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:881,1
    - Dst: event_warn
      Src: /src/libevent/listener.c:883,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/listener.c:893,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/listener.c:898,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/listener.c:901,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:904,1
    - Dst: event_warn
      Src: /src/libevent/listener.c:907,1
    - Dst: new_accepting_socket
      Src: /src/libevent/listener.c:911,1
    - Dst: event_warnx
      Src: /src/libevent/listener.c:913,1
    - Dst: start_accepting
      Src: /src/libevent/listener.c:916,1
    - Dst: event_warnx
      Src: /src/libevent/listener.c:917,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:918,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:919,1
    - Dst: iocp_listener_event_add
      Src: /src/libevent/listener.c:925,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:932,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:934,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/listener.c:936,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:938,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 6
    argNames:
    - base
    - cb
    - ptr
    - flags
    - backlog
    - fd
    argTypes:
    - struct event_base*
    - evconnlistener_cb
    - void*
    - unsigned
    - int
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 942
    functionName: evconnlistener_new_async
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - iocp_listener_event_add
    - new_accepting_socket
    - mm_calloc
    - event_iocp_port_associate_
    - event_sock_warn
    - event_warn
    - mm_free
    - getsockname
    - EnterCriticalSection
    - event_warnx
    - EVTHREAD_FREE_LOCK
    - listen
    - event_base_get_iocp_
    - EVTHREAD_ALLOC_LOCK
    - start_accepting
    - free_and_unlock_accepting_socket
    linkageType: ''
    returnType: struct evconnlistener
    signature: "struct evconnlistener *\nevconnlistener_new_async(struct event_base
      *base,\n    evconnlistener_cb cb, void *ptr, unsigned flags, int backlog,\n
      \   evutil_socket_t fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: MIN
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: MAX
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - req
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: ASSERT_VALID_REQUEST
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_VALID_REQUEST(req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: EDNS_ENABLED
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDNS_ENABLED(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: evdns_get_global_base
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evdns_base
    signature: 'struct evdns_base *

      evdns_get_global_base(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: TO_SERVER_REQUEST
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_SERVER_REQUEST(base_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: REQ_HEAD
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_HEAD(base, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: EVDNS_LOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_LOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: EVDNS_UNLOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_UNLOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: ASSERT_LOCKED
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_LOCKED(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 518
    functionName: EVDNS_LOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_LOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: EVDNS_UNLOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_UNLOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: ASSERT_LOCKED
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_LOCKED(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - evdns_debug_log_fn_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: evdns_set_log_fn
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evdns_set_log_fn(evdns_debug_log_fn_type fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/evdns.c:543,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/evdns.c:547,1
    - Dst: evdns_log_fn
      Src: /src/libevent/evdns.c:548,1
    - Dst: event_logv_
      Src: /src/libevent/evdns.c:550,1
    - Dst: va_end
      Src: /src/libevent/evdns.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - severity
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 553
    functionName: evdns_log_
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - event_logv_
    - va_end
    - va_start
    - evutil_vsnprintf
    - evdns_log_fn
    linkageType: ''
    returnType: void
    signature: void evdns_log_(int severity, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evdns.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - bev
    argTypes:
    - struct tcp_connection*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: init_tcp_connection
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void init_tcp_connection(struct tcp_connection *conn, struct bufferevent
      *bev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_free
      Src: /src/libevent/evdns.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: evdns_tcp_disconnect
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void evdns_tcp_disconnect(struct tcp_connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:586,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:590,1
    - Dst: init_tcp_connection
      Src: /src/libevent/evdns.c:593,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/evdns.c:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - port
    - bev
    argTypes:
    - struct evdns_server_port*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: evdns_add_tcp_client
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - init_tcp_connection
    - EVUTIL_ASSERT
    - mm_calloc
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: struct client_tcp_connection
    signature: 'struct client_tcp_connection *

      evdns_add_tcp_client(struct evdns_server_port *port, struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_tcp_disconnect
      Src: /src/libevent/evdns.c:612,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/evdns.c:613,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - port
    - client
    argTypes:
    - struct evdns_server_port*
    - struct client_tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 620
    functionName: evdns_remove_tcp_client
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - LIST_REMOVE
    - evdns_tcp_disconnect
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evdns_remove_tcp_client(struct evdns_server_port *port, struct
      client_tcp_connection *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FIRST
      Src: /src/libevent/evdns.c:627,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: evdns_remove_all_tcp_clients
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_remove_tcp_client
    - LIST_FIRST
    linkageType: ''
    returnType: void
    signature: void evdns_remove_all_tcp_clients(struct evdns_server_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:640,1
    - Dst: init_tcp_connection
      Src: /src/libevent/evdns.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 645
    functionName: new_tcp_connection
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - init_tcp_connection
    - mm_calloc
    linkageType: ''
    returnType: struct tcp_connection
    signature: 'struct tcp_connection *

      new_tcp_connection(struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_tcp_disconnect
      Src: /src/libevent/evdns.c:653,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: disconnect_and_free_connection
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_tcp_disconnect
    - mm_free
    linkageType: ''
    returnType: void
    signature: void disconnect_and_free_connection(struct tcp_connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:662,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - base
    - trans_id
    argTypes:
    - struct evdns_base*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: request_find_from_trans_id
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ASSERT_LOCKED
    - REQ_HEAD
    linkageType: ''
    returnType: struct request
    signature: 'struct request *

      request_find_from_trans_id(struct evdns_base *base, u16 trans_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:685,1
    - Dst: nameserver_send_probe
      Src: /src/libevent/evdns.c:686,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 688
    functionName: nameserver_prod_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - nameserver_send_probe
    linkageType: ''
    returnType: void
    signature: void nameserver_prod_callback(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:698,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:699,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:706,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:723,1
    - Dst: log
      Src: /src/libevent/evdns.c:725,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:727,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 731
    functionName: nameserver_probe_failed
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - memcpy
    - ASSERT_LOCKED
    - log
    - evtimer_del
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void nameserver_probe_failed(struct nameserver *const ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - req
    - ns
    argTypes:
    - struct request*
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 742
    functionName: request_swap_ns
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void request_swap_ns(struct request *req, struct nameserver *ns)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:753,1
    - Dst: log
      Src: /src/libevent/evdns.c:758,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:759,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:765,1
    - Dst: log
      Src: /src/libevent/evdns.c:767,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:774,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:784,1
    - Dst: evutil_socket_
      Src: /src/libevent/evdns.c:785,1
    - Dst: evutil_sockaddr_is_loopback_
      Src: /src/libevent/evdns.c:789,1
    - Dst: bind
      Src: /src/libevent/evdns.c:790,1
    - Dst: log
      Src: /src/libevent/evdns.c:793,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:797,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:798,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:801,1
    - Dst: log
      Src: /src/libevent/evdns.c:802,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:806,1
    - Dst: log
      Src: /src/libevent/evdns.c:808,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:810,1
    - Dst: request_swap_ns
      Src: /src/libevent/evdns.c:831,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:831,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - ns
    - msg
    - err
    argTypes:
    - struct nameserver*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 746
    functionDepth: 4
    functionLinenumber: 746
    functionLinenumberEnd: 837
    functionName: nameserver_failed
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - evutil_socket_
    - nameserver_pick
    - disconnect_and_free_connection
    - evutil_sockaddr_is_loopback_
    - event_assign
    - EVUTIL_ASSERT
    - request_swap_ns
    - evutil_closesocket
    - ASSERT_LOCKED
    - event_del
    - bind
    - event_add
    - log
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void nameserver_failed(struct nameserver *const ns, const char *msg,
      int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:843,1
    - Dst: log
      Src: /src/libevent/evdns.c:845,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:846,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:849,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 839
    functionDepth: 4
    functionLinenumber: 839
    functionLinenumberEnd: 858
    functionName: nameserver_up
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - evdns_cancel_request
    - ASSERT_LOCKED
    - log
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void nameserver_up(struct nameserver *const ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/evdns.c:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - trans_id
    argTypes:
    - struct request*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 864
    functionName: request_trans_id_set
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - htons
    linkageType: ''
    returnType: void
    signature: void request_trans_id_set(struct request *const req, const u16 trans_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:874,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:875,1
    - Dst: evdns_request_remove
      Src: /src/libevent/evdns.c:878,1
    - Dst: log
      Src: /src/libevent/evdns.c:880,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:882,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:889,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:894,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:895,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:900,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:907,1
    - Dst: search_request_finished
      Src: /src/libevent/evdns.c:910,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:915,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:924,1
    - Dst: evdns_requests_pump_waiting_queue
      Src: /src/libevent/evdns.c:926,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:927,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - req
    - head
    - free_handle
    argTypes:
    - struct request*
    - struct request**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 928
    functionName: request_finished
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - ASSERT_VALID_REQUEST
    - evdns_request_remove
    - event_debug_unassign
    - EVUTIL_ASSERT
    - EVDNS_LOCK
    - event_del
    - search_request_finished
    - evdns_requests_pump_waiting_queue
    - mm_free
    - EVDNS_UNLOCK
    - log
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void request_finished(struct request *const req, struct request **head,
      int free_handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:939,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:940,1
    - Dst: request_swap_ns
      Src: /src/libevent/evdns.c:944,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 957
    functionName: request_reissue
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - request_swap_ns
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    - nameserver_pick
    linkageType: ''
    returnType: int
    signature: int request_reissue(struct request *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:966,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:971,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:974,1
    - Dst: evdns_request_remove
      Src: /src/libevent/evdns.c:981,1
    - Dst: request_trans_id_set
      Src: /src/libevent/evdns.c:986,1
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:986,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:988,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:988,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:989,1
    - Dst: evdns_transmit
      Src: /src/libevent/evdns.c:990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 992
    functionName: evdns_requests_pump_waiting_queue
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evdns_transmit
    - nameserver_pick
    - request_trans_id_set
    - evdns_request_transmit
    - EVUTIL_ASSERT
    - transaction_id_pick
    - evdns_request_insert
    - REQ_HEAD
    - ASSERT_LOCKED
    - evdns_request_remove
    linkageType: ''
    returnType: void
    signature: void evdns_requests_pump_waiting_queue(struct evdns_base *base)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/evdns.c:998,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1003,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1008,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1011,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1016,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1019,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1024,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1029,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1032,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1035,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1039,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1043,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1046,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - d
    - user_pointer
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1047
    functionName: reply_run_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - EVUTIL_ASSERT
    - struct evdns_request*::user_callback
    - mm_free
    linkageType: ''
    returnType: void
    signature: void reply_run_callback(struct event_callback *d, void *user_pointer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1054,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1061,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/evdns.c:1068,1
    - Dst: event_get_priority
      Src: /src/libevent/evdns.c:1070,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/evdns.c:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - req
    - ttl
    - err
    - reply
    argTypes:
    - struct request*
    - u32
    - u32
    - struct reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1076
    functionName: reply_schedule_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - event_get_priority
    - ASSERT_LOCKED
    - event_deferred_cb_init_
    - event_deferred_cb_schedule_
    - memcpy
    linkageType: ''
    returnType: void
    signature: void reply_schedule_callback(struct request *const req, u32 ttl, u32
      err, struct reply *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_clone
      Src: /src/libevent/evdns.c:1083,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1084,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:1087,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:1087,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1092
    functionName: client_retransmit_through_tcp
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - request_clone
    - REQ_HEAD
    - request_finished
    - ASSERT_LOCKED
    - request_submit
    linkageType: ''
    returnType: int
    signature: int client_retransmit_through_tcp(struct evdns_request *handle)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1117,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:1118,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:1144,1
    - Dst: evdns_err_to_string
      Src: /src/libevent/evdns.c:1145,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:1146,1
    - Dst: request_reissue
      Src: /src/libevent/evdns.c:1147,1
    - Dst: log
      Src: /src/libevent/evdns.c:1156,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:1158,1
    - Dst: evdns_request_timeout_callback
      Src: /src/libevent/evdns.c:1162,1
    - Dst: nameserver_up
      Src: /src/libevent/evdns.c:1171,1
    - Dst: log
      Src: /src/libevent/evdns.c:1175,1
    - Dst: client_retransmit_through_tcp
      Src: /src/libevent/evdns.c:1178,1
    - Dst: search_try_next
      Src: /src/libevent/evdns.c:1186,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:1197,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:1198,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:1198,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:1201,1
    - Dst: nameserver_up
      Src: /src/libevent/evdns.c:1204,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:1205,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:1205,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 4
    argNames:
    - req
    - flags
    - ttl
    - reply
    argTypes:
    - struct request*
    - u16
    - u32
    - struct reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1107
    functionDepth: 5
    functionLinenumber: 1107
    functionLinenumberEnd: 1207
    functionName: reply_handle
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - ASSERT_VALID_REQUEST
    - nameserver_up
    - nameserver_failed
    - reply_schedule_callback
    - REQ_HEAD
    - request_finished
    - search_try_next
    - request_reissue
    - ASSERT_LOCKED
    - evdns_request_timeout_callback
    - evdns_err_to_string
    - client_retransmit_through_tcp
    - evutil_snprintf
    - log
    linkageType: ''
    returnType: void
    signature: void reply_handle(struct request *const req, u16 flags, u32 ttl, struct
      reply *reply)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET8
      Src: /src/libevent/evdns.c:1229,1
    - Dst: GET8
      Src: /src/libevent/evdns.c:1233,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1250,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 5
    argNames:
    - packet
    - length
    - idx
    - name_out
    - name_out_len
    argTypes:
    - u8*
    - int
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1263
    functionName: name_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - GET8
    - memcpy
    linkageType: ''
    returnType: int
    signature: int name_parse(u8 *packet, int length, int *idx, char *name_out, int
      name_out_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1215
    functionName: GET32
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1216
    functionName: GET16
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1217
    functionName: GET8
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET8(x)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evdns.c:1282,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1284,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1286,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1287,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1288,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1289,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1290,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1291,1
    - Dst: request_find_from_trans_id
      Src: /src/libevent/evdns.c:1295,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1297,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1325,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1327,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:1331,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/evdns.c:1334,1
    - Dst: MAX
      Src: /src/libevent/evdns.c:1350,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1351,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1361,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1362,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1363,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1364,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1375,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1378,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1387,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1390,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1395,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:1399,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:1401,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1410,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1414,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1429,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1430,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1431,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1432,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1437,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1438,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1439,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1440,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1441,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1446,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1447,1
    - Dst: reply_handle
      Src: /src/libevent/evdns.c:1458,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1460,1
    - Dst: reply_handle
      Src: /src/libevent/evdns.c:1464,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1466,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 154
    argCount: 3
    argNames:
    - base
    - packet
    - length
    argTypes:
    - struct evdns_base*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1468
    functionName: reply_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mm_malloc
    - GET16
    - evutil_ascii_strcasecmp
    - MIN
    - request_find_from_trans_id
    - EVUTIL_ASSERT
    - name_parse
    - ASSERT_LOCKED
    - MAX
    - mm_strdup
    - mm_free
    - reply_handle
    - GET32
    - memset
    - strcmp
    linkageType: ''
    returnType: int
    signature: int reply_parse(struct evdns_base *base, u8 *packet, int length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1488,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1491,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1492,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1493,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1494,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1495,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1496,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1501,1
    - Dst: memset
      Src: /src/libevent/evdns.c:1503,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1507,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:1515,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1523,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1525,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1526,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:1527,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1528,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1533,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1541,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 6
    argNames:
    - packet
    - length
    - port
    - addr
    - addrlen
    - client
    argTypes:
    - u8*
    - int
    - struct evdns_server_port*
    - struct sockaddr*
    - ev_socklen_t
    - struct client_tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1543
    functionName: request_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - mm_calloc
    - GET16
    - name_parse
    - strlen
    - ASSERT_LOCKED
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int request_parse(u8 *packet, int length, struct evdns_server_port
      *port,\n\t\t\t\tstruct sockaddr *addr, ev_socklen_t addrlen, struct client_tcp_connection
      *client)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1612,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/evdns.c:1615,1
    - Dst: request_find_from_trans_id
      Src: /src/libevent/evdns.c:1619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1622
    functionName: transaction_id_pick
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - request_find_from_trans_id
    - ASSERT_LOCKED
    - evutil_secure_rng_get_bytes
    linkageType: ''
    returnType: u16
    signature: u16 transaction_id_pick(struct evdns_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1630,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1660
    functionName: nameserver_pick
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 3
    functionsReached:
    - EVUTIL_ASSERT
    - ASSERT_LOCKED
    linkageType: ''
    returnType: struct nameserver
    signature: 'struct nameserver *

      nameserver_pick(struct evdns_base *base)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1669,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1670,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:1673,1
    - Dst: recvfrom
      Src: /src/libevent/evdns.c:1678,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:1682,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:1683,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:1685,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:1686,1
    - Dst: evutil_sockaddr_cmp
      Src: /src/libevent/evdns.c:1689,1
    - Dst: log
      Src: /src/libevent/evdns.c:1691,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:1693,1
    - Dst: reply_parse
      Src: /src/libevent/evdns.c:1700,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1663
    functionDepth: 7
    functionLinenumber: 1663
    functionLinenumberEnd: 1704
    functionName: nameserver_read
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - reply_parse
    - mm_malloc
    - recvfrom
    - evutil_sockaddr_cmp
    - nameserver_failed
    - evutil_socket_error_to_string
    - ASSERT_LOCKED
    - evutil_socket_geterror
    - mm_free
    - EVUTIL_ERR_RW_RETRIABLE
    - log
    linkageType: ''
    returnType: void
    signature: void nameserver_read(struct nameserver *ns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1714,1
    - Dst: recvfrom
      Src: /src/libevent/evdns.c:1718,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:1721,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:1722,1
    - Dst: log
      Src: /src/libevent/evdns.c:1724,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:1726,1
    - Dst: request_parse
      Src: /src/libevent/evdns.c:1729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1708
    functionDepth: 3
    functionLinenumber: 1708
    functionLinenumberEnd: 1731
    functionName: server_udp_port_read
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - recvfrom
    - evutil_socket_error_to_string
    - ASSERT_LOCKED
    - evutil_socket_geterror
    - EVUTIL_ERR_RW_RETRIABLE
    - log
    - request_parse
    linkageType: ''
    returnType: void
    signature: void server_udp_port_read(struct evdns_server_port *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1740,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1741,1
    - Dst: htons
      Src: /src/libevent/evdns.c:1742,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:1743,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:1745,1
    - Dst: sendto
      Src: /src/libevent/evdns.c:1749,1
    - Dst: log
      Src: /src/libevent/evdns.c:1755,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:1757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - port
    - req
    argTypes:
    - struct evdns_server_port*
    - struct server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1733
    functionDepth: 3
    functionLinenumber: 1733
    functionLinenumberEnd: 1759
    functionName: server_send_response
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_remove_tcp_client
    - sendto
    - EVUTIL_ASSERT
    - htons
    - bufferevent_write
    - log
    linkageType: ''
    returnType: int
    signature: int server_send_response(struct evdns_server_port *port, struct server_request
      *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1766,1
    - Dst: server_send_response
      Src: /src/libevent/evdns.c:1768,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:1770,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:1771,1
    - Dst: log
      Src: /src/libevent/evdns.c:1773,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:1773,1
    - Dst: server_request_free
      Src: /src/libevent/evdns.c:1775,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1779,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:1785,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:1786,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:1790,1
    - Dst: log
      Src: /src/libevent/evdns.c:1791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1762
    functionDepth: 4
    functionLinenumber: 1762
    functionLinenumberEnd: 1794
    functionName: server_port_flush
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - event_assign
    - evutil_socket_error_to_string
    - EVUTIL_ASSERT
    - server_request_free
    - ASSERT_LOCKED
    - event_del
    - evutil_socket_geterror
    - server_send_response
    - EVUTIL_ERR_RW_RETRIABLE
    - event_add
    - log
    linkageType: ''
    returnType: void
    signature: void server_port_flush(struct evdns_server_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1801,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:1805,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:1806,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:1809,1
    - Dst: log
      Src: /src/libevent/evdns.c:1811,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:1812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ns
    - waiting
    argTypes:
    - struct nameserver*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1799
    functionDepth: 4
    functionLinenumber: 1799
    functionLinenumberEnd: 1817
    functionName: nameserver_write_waiting
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - event_assign
    - ASSERT_LOCKED
    - event_del
    - event_add
    - log
    linkageType: ''
    returnType: void
    signature: void nameserver_write_waiting(struct nameserver *ns, char waiting)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:1826,1
    - Dst: evdns_transmit
      Src: /src/libevent/evdns.c:1829,1
    - Dst: nameserver_write_waiting
      Src: /src/libevent/evdns.c:1830,1
    - Dst: nameserver_read
      Src: /src/libevent/evdns.c:1834,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:1836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1821
    functionDepth: 8
    functionLinenumber: 1821
    functionLinenumberEnd: 1837
    functionName: nameserver_ready_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_transmit
    - nameserver_write_waiting
    - nameserver_read
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void nameserver_ready_callback(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:1846,1
    - Dst: server_port_flush
      Src: /src/libevent/evdns.c:1849,1
    - Dst: server_udp_port_read
      Src: /src/libevent/evdns.c:1852,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1841
    functionDepth: 5
    functionLinenumber: 1841
    functionLinenumberEnd: 1855
    functionName: server_port_ready_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - server_udp_port_read
    - server_port_flush
    linkageType: ''
    returnType: void
    signature: void server_port_ready_callback(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct dnslabel_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1873
    functionName: dnslabel_table_init
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dnslabel_table_init(struct dnslabel_table *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct dnslabel_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1883
    functionName: dnslabel_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void dnslabel_clear(struct dnslabel_table *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/evdns.c:1892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - table
    - label
    argTypes:
    - struct dnslabel_table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1896
    functionName: dnslabel_table_get_pos
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int dnslabel_table_get_pos(const struct dnslabel_table *table, const
      char *label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:1906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - table
    - label
    - pos
    argTypes:
    - struct dnslabel_table*
    - char*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1899
    functionDepth: 1
    functionLinenumber: 1899
    functionLinenumberEnd: 1914
    functionName: dnslabel_table_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_strdup
    linkageType: ''
    returnType: int
    signature: int dnslabel_table_add(struct dnslabel_table *table, const char *label,
      off_t pos)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dnslabel_table_get_pos
      Src: /src/libevent/evdns.c:1954,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:1955,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:1958,1
    - Dst: dnslabel_table_add
      Src: /src/libevent/evdns.c:1963,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1966,1
    - Dst: dnslabel_table_add
      Src: /src/libevent/evdns.c:1974,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1977,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - buf
    - buf_len
    - j
    - name
    - name_len
    - table
    argTypes:
    - u8*
    - size_t
    - off_t
    - char*
    - size_t
    - struct dnslabel_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1991
    functionName: dnsname_to_labels
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - APPEND16
    - dnslabel_table_get_pos
    - dnslabel_table_add
    - strchr
    - memcpy
    linkageType: ''
    returnType: off_t
    signature: "off_t dnsname_to_labels(u8 *const buf, size_t buf_len, off_t j,\n\t\t\t\t
      \ const char *name, const size_t name_len,\n\t\t\t\t  struct dnslabel_table
      *table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1942
    functionName: APPEND16
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1942
    functionDepth: 0
    functionLinenumber: 1942
    functionLinenumberEnd: 1949
    functionName: APPEND32
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND32(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EDNS_ENABLED
      Src: /src/libevent/evdns.c:2000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - base
    - name_len
    argTypes:
    - struct evdns_base*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2011
    functionName: evdns_request_len
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EDNS_ENABLED
    linkageType: ''
    returnType: size_t
    signature: size_t evdns_request_len(const struct evdns_base *base, const size_t
      name_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2027,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2028,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2029,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2030,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2031,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2032,1
    - Dst: EDNS_ENABLED
      Src: /src/libevent/evdns.c:2032,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2034,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2039,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2040,1
    - Dst: EDNS_ENABLED
      Src: /src/libevent/evdns.c:2042,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2056,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2057,1
    - Dst: APPEND32
      Src: /src/libevent/evdns.c:2058,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 8
    argNames:
    - base
    - name
    - name_len
    - trans_id
    - type
    - class
    - buf
    - buf_len
    argTypes:
    - struct evdns_base*
    - char*
    - size_t
    - u16
    - u16
    - u16
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2017
    functionDepth: 3
    functionLinenumber: 2017
    functionLinenumberEnd: 2065
    functionName: evdns_request_data_build
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - APPEND32
    - APPEND16
    - EDNS_ENABLED
    - dnsname_to_labels
    linkageType: ''
    returnType: int
    signature: "int evdns_request_data_build(const struct evdns_base *base,\n\tconst
      char *const name, const size_t name_len,\n\tconst u16 trans_id, const u16 type,
      const u16 class, u8 *const buf,\n\tsize_t buf_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2074,1
    - Dst: memset
      Src: /src/libevent/evdns.c:2076,1
    - Dst: LIST_INIT
      Src: /src/libevent/evdns.c:2091,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:2092,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:2095,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2096,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/evdns.c:2099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - base
    - socket
    - flags
    - cb
    - user_data
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2101
    functionName: evdns_add_server_port_with_base
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - LIST_INIT
    - event_assign
    - mm_free
    - EVTHREAD_ALLOC_LOCK
    - event_add
    - memset
    linkageType: ''
    returnType: struct evdns_server_port
    signature: 'struct evdns_server_port *

      evdns_add_server_port_with_base(struct event_base *base, evutil_socket_t socket,
      int flags, evdns_request_callback_fn_type cb, void *user_data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:2113,1
    - Dst: LIST_INIT
      Src: /src/libevent/evdns.c:2125,1
    - Dst: evconnlistener_set_cb
      Src: /src/libevent/evdns.c:2127,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/evdns.c:2129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - base
    - listener
    - flags
    - cb
    - user_data
    argTypes:
    - struct event_base*
    - struct evconnlistener*
    - int
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2104
    functionDepth: 3
    functionLinenumber: 2104
    functionLinenumberEnd: 2131
    functionName: evdns_add_server_port_with_listener
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - evconnlistener_set_cb
    - mm_calloc
    - LIST_INIT
    linkageType: ''
    returnType: struct evdns_server_port
    signature: 'struct evdns_server_port *

      evdns_add_server_port_with_listener(struct event_base *base, struct evconnlistener
      *listener, int flags, evdns_request_callback_fn_type cb, void *user_data)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/evdns.c:2140,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2144,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2145,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/evdns.c:2149,1
    - Dst: bufferevent_read
      Src: /src/libevent/evdns.c:2152,1
    - Dst: ntohs
      Src: /src/libevent/evdns.c:2154,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/evdns.c:2160,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2163,1
    - Dst: bufferevent_read
      Src: /src/libevent/evdns.c:2167,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - conn
    - msg
    - msg_len
    argTypes:
    - struct tcp_connection*
    - u8**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2136
    functionDepth: 1
    functionLinenumber: 2136
    functionLinenumberEnd: 2180
    functionName: tcp_read_message
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - bufferevent_read
    - mm_malloc
    - EVUTIL_ASSERT
    - bufferevent_get_input
    - evbuffer_get_length
    - mm_free
    - ntohs
    linkageType: ''
    returnType: int
    signature: int tcp_read_message(struct tcp_connection *conn, u8 **msg, int *msg_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2191,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2192,1
    - Dst: tcp_read_message
      Src: /src/libevent/evdns.c:2195,1
    - Dst: log
      Src: /src/libevent/evdns.c:2196,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:2197,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2199,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2201,1
    - Dst: request_parse
      Src: /src/libevent/evdns.c:2209,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2210,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2215,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2217,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2182
    functionDepth: 3
    functionLinenumber: 2182
    functionLinenumberEnd: 2219
    functionName: server_tcp_read_packet_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_remove_tcp_client
    - bufferevent_setcb
    - EVUTIL_ASSERT
    - EVDNS_LOCK
    - bufferevent_setwatermark
    - tcp_read_message
    - mm_free
    - EVDNS_UNLOCK
    - log
    - request_parse
    - server_port_free
    linkageType: ''
    returnType: void
    signature: void server_tcp_read_packet_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2227,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2228,1
    - Dst: log
      Src: /src/libevent/evdns.c:2230,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:2231,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2234,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2221
    functionDepth: 3
    functionLinenumber: 2221
    functionLinenumberEnd: 2237
    functionName: server_tcp_event_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_remove_tcp_client
    - EVUTIL_ASSERT
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - log
    - server_port_free
    linkageType: ''
    returnType: void
    signature: void server_tcp_event_cb(struct bufferevent *bev, short events, void
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/evdns.c:2244,1
    - Dst: log
      Src: /src/libevent/evdns.c:2250,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/evdns.c:2252,1
    - Dst: evdns_add_tcp_client
      Src: /src/libevent/evdns.c:2254,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2260,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2261,1
    - Dst: bufferevent_enable
      Src: /src/libevent/evdns.c:2262,1
    - Dst: bufferevent_free
      Src: /src/libevent/evdns.c:2267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - listener
    - fd
    - address
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2239
    functionDepth: 2
    functionLinenumber: 2239
    functionLinenumberEnd: 2269
    functionName: incoming_conn_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_add_tcp_client
    - bufferevent_set_timeouts
    - bufferevent_enable
    - bufferevent_socket_new
    - bufferevent_setwatermark
    - bufferevent_free
    - log
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void incoming_conn_cb(struct evconnlistener *listener, evutil_socket_t
      fd,\n\t\t\t\t  struct sockaddr *address, int socklen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/evdns.c:2274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - socket
    - flags
    - cb
    - user_data
    argTypes:
    - evutil_socket_t
    - int
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2271
    functionDepth: 2
    functionLinenumber: 2271
    functionLinenumberEnd: 2275
    functionName: evdns_add_server_port
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_add_server_port_with_base
    linkageType: ''
    returnType: struct evdns_server_port
    signature: 'struct evdns_server_port *

      evdns_add_server_port(evutil_socket_t socket, int flags, evdns_request_callback_fn_type
      cb, void *user_data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2281,1
    - Dst: evdns_remove_all_tcp_clients
      Src: /src/libevent/evdns.c:2282,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2284,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2285,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2278
    functionDepth: 4
    functionLinenumber: 2278
    functionLinenumberEnd: 2290
    functionName: evdns_close_server_port
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_remove_all_tcp_clients
    - server_port_free
    linkageType: ''
    returnType: void
    signature: void evdns_close_server_port(struct evdns_server_port *port)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2296,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2301,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2324,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:2328,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2329,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:2340,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2341,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2342,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2347,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2348,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2349,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2353,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2361,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 9
    argNames:
    - req_
    - section
    - name
    - type
    - class
    - ttl
    - datalen
    - is_name
    - data
    argTypes:
    - struct evdns_server_request*
    - int
    - char*
    - int
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2293
    functionDepth: 1
    functionLinenumber: 2293
    functionLinenumberEnd: 2363
    functionName: evdns_server_request_add_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - EVDNS_LOCK
    - mm_strdup
    - mm_free
    - EVDNS_UNLOCK
    - TO_SERVER_REQUEST
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_reply(struct evdns_server_request *req_,
      int section, const char *name, int type, int class, int ttl, int datalen, int
      is_name, const char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - req
    - name
    - n
    - addrs
    - ttl
    argTypes:
    - struct evdns_server_request*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2366
    functionDepth: 2
    functionLinenumber: 2366
    functionLinenumberEnd: 2372
    functionName: evdns_server_request_add_a_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_reply
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_a_reply(struct evdns_server_request *req,
      const char *name, int n, const void *addrs, int ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - req
    - name
    - n
    - addrs
    - ttl
    argTypes:
    - struct evdns_server_request*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2375
    functionDepth: 2
    functionLinenumber: 2375
    functionLinenumberEnd: 2381
    functionName: evdns_server_request_add_aaaa_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_reply
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_aaaa_reply(struct evdns_server_request
      *req, const char *name, int n, const void *addrs, int ttl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/evdns.c:2394,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:2395,1
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - req
    - in
    - inaddr_name
    - hostname
    - ttl
    argTypes:
    - struct evdns_server_request*
    - struct in_addr*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2384
    functionDepth: 2
    functionLinenumber: 2384
    functionLinenumberEnd: 2405
    functionName: evdns_server_request_add_ptr_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ntohl
    - evutil_snprintf
    - evdns_server_request_add_reply
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_ptr_reply(struct evdns_server_request
      *req, struct in_addr *in, const char *inaddr_name, const char *hostname, int
      ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - req
    - name
    - cname
    - ttl
    argTypes:
    - struct evdns_server_request*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2408
    functionDepth: 2
    functionLinenumber: 2408
    functionLinenumberEnd: 2414
    functionName: evdns_server_request_add_cname_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_reply
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_cname_reply(struct evdns_server_request
      *req, const char *name, const char *cname, int ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exreq
    - flags
    argTypes:
    - struct evdns_server_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2423
    functionName: evdns_server_request_set_flags
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TO_SERVER_REQUEST
    linkageType: ''
    returnType: void
    signature: void evdns_server_request_set_flags(struct evdns_server_request *exreq,
      int flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dnslabel_table_init
      Src: /src/libevent/evdns.c:2444,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2445,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2446,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2447,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2448,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2449,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2450,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2455,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:2455,1
    - Dst: dnslabel_clear
      Src: /src/libevent/evdns.c:2457,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2460,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2461,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2474,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:2474,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2479,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2480,1
    - Dst: APPEND32
      Src: /src/libevent/evdns.c:2481,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2486,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:2486,1
    - Dst: htons
      Src: /src/libevent/evdns.c:2490,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2491,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2493,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2497,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2500,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2515,1
    - Dst: server_request_free_answers
      Src: /src/libevent/evdns.c:2516,1
    - Dst: dnslabel_clear
      Src: /src/libevent/evdns.c:2517,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2520,1
    - Dst: server_request_free_answers
      Src: /src/libevent/evdns.c:2521,1
    - Dst: dnslabel_clear
      Src: /src/libevent/evdns.c:2522,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 2
    argNames:
    - req
    - err
    argTypes:
    - struct server_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2425
    functionDepth: 3
    functionLinenumber: 2425
    functionLinenumberEnd: 2524
    functionName: evdns_server_request_format_response
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - memcpy
    - APPEND16
    - mm_malloc
    - EVUTIL_ASSERT
    - dnsname_to_labels
    - htons
    - server_request_free_answers
    - strlen
    - dnslabel_table_init
    - APPEND32
    - dnslabel_clear
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_format_response(struct server_request *req,
      int err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2530,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2534,1
    - Dst: evdns_server_request_format_response
      Src: /src/libevent/evdns.c:2536,1
    - Dst: server_send_response
      Src: /src/libevent/evdns.c:2540,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:2542,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:2543,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:2556,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:2557,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:2559,1
    - Dst: log
      Src: /src/libevent/evdns.c:2560,1
    - Dst: server_request_free
      Src: /src/libevent/evdns.c:2568,1
    - Dst: server_port_flush
      Src: /src/libevent/evdns.c:2574,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2578,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - req_
    - err
    argTypes:
    - struct evdns_server_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2527
    functionDepth: 5
    functionLinenumber: 2527
    functionLinenumberEnd: 2580
    functionName: evdns_server_request_respond
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_format_response
    - event_assign
    - server_port_flush
    - EVDNS_LOCK
    - server_request_free
    - event_del
    - evutil_socket_geterror
    - server_send_response
    - EVUTIL_ERR_RW_RETRIABLE
    - EVDNS_UNLOCK
    - event_add
    - log
    - TO_SERVER_REQUEST
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_respond(struct evdns_server_request *req_,
      int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2599,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2602,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2610
    functionName: server_request_free_answers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void server_request_free_answers(struct server_request *req)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2620,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2623,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2628,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2640,1
    - Dst: server_request_free_answers
      Src: /src/libevent/evdns.c:2644,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2652,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2653,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2654,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2658,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2659,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2661
    functionName: server_request_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVDNS_LOCK
    - server_request_free_answers
    - mm_free
    - EVDNS_UNLOCK
    - server_port_free
    linkageType: ''
    returnType: int
    signature: int server_request_free(struct server_request *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2667,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2668,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2669,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:2671,1
    - Dst: evconnlistener_free
      Src: /src/libevent/evdns.c:2677,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:2679,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:2680,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evdns.c:2683,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2664
    functionDepth: 3
    functionLinenumber: 2664
    functionLinenumberEnd: 2685
    functionName: server_port_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 4
    functionsReached:
    - evconnlistener_free
    - event_debug_unassign
    - EVUTIL_ASSERT
    - evutil_closesocket
    - EVTHREAD_FREE_LOCK
    - event_del
    - mm_free
    linkageType: ''
    returnType: void
    signature: void server_port_free(struct evdns_server_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2691,1
    - Dst: server_request_free
      Src: /src/libevent/evdns.c:2692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - req_
    argTypes:
    - struct evdns_server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2688
    functionDepth: 3
    functionLinenumber: 2688
    functionLinenumberEnd: 2694
    functionName: evdns_server_request_drop
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - server_request_free
    - TO_SERVER_REQUEST
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_drop(struct evdns_server_request *req_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2700,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - req_
    - sa
    - addr_len
    argTypes:
    - struct evdns_server_request*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2705
    functionName: evdns_server_request_get_requesting_addr
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TO_SERVER_REQUEST
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_get_requesting_addr(struct evdns_server_request
      *req_, struct sockaddr *sa, int addr_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:2720,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:2722,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:2723,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:2723,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:2725,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:2726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2707
    functionDepth: 2
    functionLinenumber: 2707
    functionLinenumberEnd: 2732
    functionName: retransmit_all_tcp_requests_for
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_request_transmit
    - reply_schedule_callback
    - REQ_HEAD
    - request_finished
    - log
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void retransmit_all_tcp_requests_for(struct nameserver *server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:2744,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2745,1
    - Dst: log
      Src: /src/libevent/evdns.c:2750,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:2752,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:2754,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:2754,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:2755,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2759,1
    - Dst: retransmit_all_tcp_requests_for
      Src: /src/libevent/evdns.c:2763,1
    - Dst: log
      Src: /src/libevent/evdns.c:2766,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:2767,1
    - Dst: request_swap_ns
      Src: /src/libevent/evdns.c:2768,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:2768,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:2769,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:2774,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2736
    functionDepth: 5
    functionLinenumber: 2736
    functionLinenumberEnd: 2780
    functionName: evdns_request_timeout_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - nameserver_pick
    - disconnect_and_free_connection
    - evdns_request_transmit
    - nameserver_failed
    - reply_schedule_callback
    - REQ_HEAD
    - request_swap_ns
    - EVDNS_LOCK
    - request_finished
    - retransmit_all_tcp_requests_for
    - EVDNS_UNLOCK
    - log
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void evdns_request_timeout_callback(evutil_socket_t fd, short events,
      void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:2791,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:2792,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:2796,1
    - Dst: sendto
      Src: /src/libevent/evdns.c:2800,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:2803,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:2804,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:2806,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:2806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - req
    - server
    argTypes:
    - struct request*
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2788
    functionDepth: 5
    functionLinenumber: 2788
    functionLinenumberEnd: 2813
    functionName: evdns_request_transmit_to
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ASSERT_VALID_REQUEST
    - nameserver_failed
    - sendto
    - evutil_socket_error_to_string
    - ASSERT_LOCKED
    - evutil_socket_geterror
    - EVUTIL_ERR_RW_RETRIABLE
    - event_add
    linkageType: ''
    returnType: int
    signature: int evdns_request_transmit_to(struct request *req, struct nameserver
      *server)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2829,1
    - Dst: new_tcp_connection
      Src: /src/libevent/evdns.c:2830,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/evdns.c:2830,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/evdns.c:2835,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2838,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/evdns.c:2839,1
    - Dst: log
      Src: /src/libevent/evdns.c:2843,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2821
    functionDepth: 3
    functionLinenumber: 2821
    functionLinenumberEnd: 2845
    functionName: evdns_tcp_connect_if_disconnected
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - disconnect_and_free_connection
    - bufferevent_set_timeouts
    - EVUTIL_ASSERT
    - bufferevent_socket_new
    - bufferevent_socket_connect
    - new_tcp_connection
    - log
    linkageType: ''
    returnType: int
    signature: int evdns_tcp_connect_if_disconnected(struct nameserver *server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2858,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2859,1
    - Dst: tcp_read_message
      Src: /src/libevent/evdns.c:2862,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2863,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2865,1
    - Dst: reply_parse
      Src: /src/libevent/evdns.c:2873,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2874,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2879,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2885,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2887,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2851
    functionDepth: 7
    functionLinenumber: 2851
    functionLinenumberEnd: 2889
    functionName: client_tcp_read_packet_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - reply_parse
    - disconnect_and_free_connection
    - EVUTIL_ASSERT
    - EVDNS_LOCK
    - bufferevent_setwatermark
    - tcp_read_message
    - mm_free
    - EVDNS_UNLOCK
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void client_tcp_read_packet_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2895,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2896,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2897,1
    - Dst: log
      Src: /src/libevent/evdns.c:2899,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2902,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2905,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2908,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/evdns.c:2910,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/evdns.c:2910,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2911,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2912,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2891
    functionDepth: 3
    functionLinenumber: 2891
    functionLinenumberEnd: 2915
    functionName: client_tcp_event_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - disconnect_and_free_connection
    - EVUTIL_ASSERT
    - bufferevent_getfd
    - evutil_make_socket_nonblocking
    - EVDNS_LOCK
    - bufferevent_setwatermark
    - EVDNS_UNLOCK
    - log
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void client_tcp_event_cb(struct bufferevent *bev, short events, void
      *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:2928,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:2929,1
    - Dst: evdns_tcp_connect_if_disconnected
      Src: /src/libevent/evdns.c:2931,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2935,1
    - Dst: log
      Src: /src/libevent/evdns.c:2937,1
    - Dst: htons
      Src: /src/libevent/evdns.c:2938,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:2939,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:2941,1
    - Dst: bufferevent_enable
      Src: /src/libevent/evdns.c:2943,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:2945,1
    - Dst: log
      Src: /src/libevent/evdns.c:2950,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - req
    - server
    argTypes:
    - struct request*
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2923
    functionDepth: 4
    functionLinenumber: 2923
    functionLinenumberEnd: 2954
    functionName: evdns_request_transmit_through_tcp
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ASSERT_VALID_REQUEST
    - disconnect_and_free_connection
    - bufferevent_enable
    - htons
    - evdns_tcp_connect_if_disconnected
    - bufferevent_write
    - ASSERT_LOCKED
    - log
    - bufferevent_setcb
    - evtimer_add
    linkageType: ''
    returnType: int
    signature: int evdns_request_transmit_through_tcp(struct request *req, struct
      nameserver *server)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:2966,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:2967,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2971,1
    - Dst: evdns_request_transmit_through_tcp
      Src: /src/libevent/evdns.c:2986,1
    - Dst: evdns_request_transmit_to
      Src: /src/libevent/evdns.c:2995,1
    - Dst: nameserver_write_waiting
      Src: /src/libevent/evdns.c:3001,1
    - Dst: log
      Src: /src/libevent/evdns.c:3011,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:3013,1
    - Dst: log
      Src: /src/libevent/evdns.c:3014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 2962
    functionDepth: 6
    functionLinenumber: 2962
    functionLinenumberEnd: 3023
    functionName: evdns_request_transmit
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 3
    functionsReached:
    - ASSERT_VALID_REQUEST
    - nameserver_write_waiting
    - EVUTIL_ASSERT
    - evdns_request_transmit_to
    - ASSERT_LOCKED
    - evdns_request_transmit_through_tcp
    - log
    - evtimer_add
    linkageType: ''
    returnType: int
    signature: int evdns_request_transmit(struct request *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3040,1
    - Dst: nameserver_up
      Src: /src/libevent/evdns.c:3044,1
    - Dst: nameserver_probe_failed
      Src: /src/libevent/evdns.c:3046,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3025
    functionDepth: 5
    functionLinenumber: 3025
    functionLinenumberEnd: 3049
    functionName: nameserver_probe_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - nameserver_probe_failed
    - nameserver_up
    linkageType: ''
    returnType: void
    signature: void nameserver_probe_callback(int result, char type, int count, int
      ttl, void *addresses, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3059,1
    - Dst: log
      Src: /src/libevent/evdns.c:3060,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:3061,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3064,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3068,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3070,1
    - Dst: request_trans_id_set
      Src: /src/libevent/evdns.c:3075,1
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:3075,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3051
    functionDepth: 4
    functionLinenumber: 3051
    functionLinenumberEnd: 3078
    functionName: nameserver_send_probe
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evutil_format_sockaddr_port_
    - request_trans_id_set
    - mm_calloc
    - transaction_id_pick
    - ASSERT_LOCKED
    - mm_free
    - request_new
    - request_submit
    - log
    linkageType: ''
    returnType: void
    signature: void nameserver_send_probe(struct nameserver *const ns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3088,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:3096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3083
    functionDepth: 7
    functionLinenumber: 3083
    functionLinenumberEnd: 3105
    functionName: evdns_transmit
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - ASSERT_LOCKED
    - evdns_request_transmit
    linkageType: ''
    returnType: int
    signature: int evdns_transmit(struct evdns_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3114,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3108
    functionDepth: 1
    functionLinenumber: 3108
    functionLinenumberEnd: 3125
    functionName: evdns_base_count_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evdns_base_count_nameservers(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_count_nameservers
      Src: /src/libevent/evdns.c:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3127
    functionDepth: 2
    functionLinenumber: 3127
    functionLinenumberEnd: 3131
    functionName: evdns_count_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_count_nameservers
    linkageType: ''
    returnType: int
    signature: int evdns_count_nameservers(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3140,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3144,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:3149,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:3151,1
    - Dst: evtimer_initialized
      Src: /src/libevent/evdns.c:3152,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:3153,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:3155,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:3159,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3160,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:3176,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:3181,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3197,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3134
    functionDepth: 3
    functionLinenumber: 3134
    functionLinenumberEnd: 3199
    functionName: evdns_base_clear_nameservers_and_suspend
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evtimer_initialized
    - disconnect_and_free_connection
    - evdns_cancel_request
    - evdns_request_insert
    - evutil_closesocket
    - EVDNS_LOCK
    - event_del
    - mm_free
    - EVDNS_UNLOCK
    - evtimer_del
    linkageType: ''
    returnType: int
    signature: int evdns_base_clear_nameservers_and_suspend(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_clear_nameservers_and_suspend
      Src: /src/libevent/evdns.c:3204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3201
    functionDepth: 4
    functionLinenumber: 3201
    functionLinenumberEnd: 3205
    functionName: evdns_clear_nameservers_and_suspend
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_clear_nameservers_and_suspend
    linkageType: ''
    returnType: int
    signature: int evdns_clear_nameservers_and_suspend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3212,1
    - Dst: evdns_requests_pump_waiting_queue
      Src: /src/libevent/evdns.c:3213,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3209
    functionDepth: 2
    functionLinenumber: 3209
    functionLinenumberEnd: 3217
    functionName: evdns_base_resume
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_requests_pump_waiting_queue
    linkageType: ''
    returnType: int
    signature: int evdns_base_resume(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resume
      Src: /src/libevent/evdns.c:3222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3219
    functionDepth: 3
    functionLinenumber: 3219
    functionLinenumberEnd: 3223
    functionName: evdns_resume
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resume
    linkageType: ''
    returnType: int
    signature: int evdns_resume(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3234,1
    - Dst: evutil_sockaddr_cmp
      Src: /src/libevent/evdns.c:3237,1
    - Dst: log
      Src: /src/libevent/evdns.c:3242,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3246,1
    - Dst: memset
      Src: /src/libevent/evdns.c:3249,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:3252,1
    - Dst: evutil_socket_
      Src: /src/libevent/evdns.c:3254,1
    - Dst: evutil_sockaddr_is_loopback_
      Src: /src/libevent/evdns.c:3259,1
    - Dst: bind
      Src: /src/libevent/evdns.c:3260,1
    - Dst: log
      Src: /src/libevent/evdns.c:3263,1
    - Dst: setsockopt
      Src: /src/libevent/evdns.c:3270,1
    - Dst: log
      Src: /src/libevent/evdns.c:3272,1
    - Dst: setsockopt
      Src: /src/libevent/evdns.c:3278,1
    - Dst: log
      Src: /src/libevent/evdns.c:3280,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3286,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:3290,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:3292,1
    - Dst: log
      Src: /src/libevent/evdns.c:3297,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:3298,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:3316,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:3318,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3319,1
    - Dst: log
      Src: /src/libevent/evdns.c:3320,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:3321,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 80
    argCount: 3
    argNames:
    - base
    - address
    - addrlen
    argTypes:
    - struct evdns_base*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3225
    functionDepth: 4
    functionLinenumber: 3225
    functionLinenumberEnd: 3323
    functionName: evdns_nameserver_add_impl_
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - evutil_socket_
    - mm_malloc
    - event_debug_unassign
    - evutil_sockaddr_is_loopback_
    - evutil_sockaddr_cmp
    - setsockopt
    - event_assign
    - evutil_closesocket
    - evtimer_assign
    - ASSERT_LOCKED
    - bind
    - mm_free
    - event_add
    - log
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_add_impl_(struct evdns_base *base, const struct
      sockaddr *address, int addrlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evdns.c:3331,1
    - Dst: htons
      Src: /src/libevent/evdns.c:3333,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3338,1
    - Dst: evdns_nameserver_add_impl_
      Src: /src/libevent/evdns.c:3339,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - base
    - address
    argTypes:
    - struct evdns_base*
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3326
    functionDepth: 5
    functionLinenumber: 3326
    functionLinenumberEnd: 3342
    functionName: evdns_base_nameserver_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_nameserver_add_impl_
    - htons
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - memset
    linkageType: ''
    returnType: int
    signature: int evdns_base_nameserver_add(struct evdns_base *base, unsigned long
      int address)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:3347,1
    - Dst: evdns_base_nameserver_add
      Src: /src/libevent/evdns.c:3348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - address
    argTypes:
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3344
    functionDepth: 6
    functionLinenumber: 3344
    functionLinenumberEnd: 3349
    functionName: evdns_nameserver_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_nameserver_add
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_add(unsigned long int address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/evdns.c:3355,1
    - Dst: htons
      Src: /src/libevent/evdns.c:3357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sa
    - port
    argTypes:
    - struct sockaddr*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3359
      start: 3351
    functionDepth: 0
    functionLinenumber: 3351
    functionLinenumberEnd: 3359
    functionName: sockaddr_setport
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - htons
    linkageType: ''
    returnType: void
    signature: void sockaddr_setport(struct sockaddr *sa, ev_uint16_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/libevent/evdns.c:3365,1
    - Dst: ntohs
      Src: /src/libevent/evdns.c:3367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3371
      start: 3361
    functionDepth: 0
    functionLinenumber: 3361
    functionLinenumberEnd: 3371
    functionName: sockaddr_getport
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: ev_uint16_t
    signature: ev_uint16_t sockaddr_getport(struct sockaddr *sa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/evdns.c:3380,1
    - Dst: log
      Src: /src/libevent/evdns.c:3382,1
    - Dst: sockaddr_getport
      Src: /src/libevent/evdns.c:3387,1
    - Dst: sockaddr_setport
      Src: /src/libevent/evdns.c:3388,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3390,1
    - Dst: evdns_nameserver_add_impl_
      Src: /src/libevent/evdns.c:3391,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - ip_as_string
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3394
      start: 3374
    functionDepth: 5
    functionLinenumber: 3374
    functionLinenumberEnd: 3394
    functionName: evdns_base_nameserver_ip_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_nameserver_add_impl_
    - evutil_parse_sockaddr_port
    - sockaddr_setport
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - log
    - sockaddr_getport
    linkageType: ''
    returnType: int
    signature: int evdns_base_nameserver_ip_add(struct evdns_base *base, const char
      *ip_as_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:3399,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:3400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ip_as_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3401
      start: 3396
    functionDepth: 6
    functionLinenumber: 3396
    functionLinenumberEnd: 3401
    functionName: evdns_nameserver_ip_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_ip_add(const char *ip_as_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3408,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3409,1
    - Dst: evdns_nameserver_add_impl_
      Src: /src/libevent/evdns.c:3410,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - base
    - sa
    - len
    - flags
    argTypes:
    - struct evdns_base*
    - struct sockaddr*
    - ev_socklen_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3403
    functionDepth: 5
    functionLinenumber: 3403
    functionLinenumberEnd: 3413
    functionName: evdns_base_nameserver_sockaddr_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_nameserver_add_impl_
    - EVUTIL_ASSERT
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: "int evdns_base_nameserver_sockaddr_add(struct evdns_base *base,\n
      \   const struct sockaddr *sa, ev_socklen_t len, unsigned flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3422,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3436,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - base
    - idx
    - sa
    - len
    argTypes:
    - struct evdns_base*
    - int
    - struct sockaddr*
    - ev_socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3415
    functionDepth: 1
    functionLinenumber: 3415
    functionLinenumberEnd: 3441
    functionName: evdns_base_get_nameserver_addr
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int evdns_base_get_nameserver_addr(struct evdns_base *base, int idx,\n
      \   struct sockaddr *sa, ev_socklen_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3449,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - base
    - idx
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3443
    functionDepth: 1
    functionLinenumber: 3443
    functionLinenumberEnd: 3461
    functionName: evdns_base_get_nameserver_fd
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evdns_base_get_nameserver_fd(struct evdns_base *base, int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3468,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3469,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3475,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3485,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - req
    - head
    argTypes:
    - struct request*
    - struct request**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3465
    functionDepth: 1
    functionLinenumber: 3465
    functionLinenumberEnd: 3500
    functionName: evdns_request_remove
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void evdns_request_remove(struct request *req, struct request **head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3505,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - req
    - head
    argTypes:
    - struct request*
    - struct request**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3517
      start: 3503
    functionDepth: 1
    functionLinenumber: 3503
    functionLinenumberEnd: 3517
    functionName: evdns_request_insert
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void evdns_request_insert(struct request *req, struct request **head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evdns.c:3522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3519
    functionDepth: 0
    functionLinenumber: 3519
    functionLinenumberEnd: 3527
    functionName: string_num_dots
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int string_num_dots(const char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:3536,1
    - Dst: evdns_request_len
      Src: /src/libevent/evdns.c:3537,1
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:3538,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3541,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3546,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3551,1
    - Dst: memset
      Src: /src/libevent/evdns.c:3555,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:3559,1
    - Dst: strlcpy
      Src: /src/libevent/evdns.c:3564,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/evdns.c:3565,1
    - Dst: EVUTIL_ISALPHA_
      Src: /src/libevent/evdns.c:3567,1
    - Dst: evdns_request_data_build
      Src: /src/libevent/evdns.c:3581,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:3590,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3603,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 5
    argNames:
    - base
    - handle
    - type
    - name
    - flags
    argTypes:
    - struct evdns_base*
    - struct evdns_request*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3529
    functionDepth: 4
    functionLinenumber: 3529
    functionLinenumberEnd: 3605
    functionName: request_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 3
    functionsReached:
    - mm_malloc
    - evdns_request_data_build
    - nameserver_pick
    - evutil_secure_rng_get_bytes
    - evtimer_assign
    - evdns_request_len
    - strlen
    - ASSERT_LOCKED
    - mm_free
    - EVUTIL_ISALPHA_
    - strlcpy
    - transaction_id_pick
    - memset
    linkageType: ''
    returnType: struct request
    signature: "struct request *\nrequest_new(struct evdns_base *base, struct evdns_request
      *handle, int type,\n\t    const char *name, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:3612,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3614,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3615,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3616,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3620,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:3622,1
    - Dst: request_trans_id_set
      Src: /src/libevent/evdns.c:3627,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:3630,1
    - Dst: log
      Src: /src/libevent/evdns.c:3633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - base
    - current
    argTypes:
    - struct evdns_base*
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3636
      start: 3607
    functionDepth: 3
    functionLinenumber: 3607
    functionLinenumberEnd: 3636
    functionName: request_clone
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - mm_malloc
    - request_trans_id_set
    - nameserver_pick
    - log
    - EVUTIL_ASSERT
    - evtimer_assign
    - ASSERT_LOCKED
    - transaction_id_pick
    - memcpy
    linkageType: ''
    returnType: struct request
    signature: 'struct request *

      request_clone(struct evdns_base *base, struct request* current)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3641,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3642,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:3646,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:3646,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:3651,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:3653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3638
    functionDepth: 7
    functionLinenumber: 3638
    functionLinenumberEnd: 3656
    functionName: request_submit
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - ASSERT_VALID_REQUEST
    - evdns_request_transmit
    - evdns_request_insert
    - REQ_HEAD
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void request_submit(struct request *const req)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3674,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3676,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3681,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:3683,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:3686,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:3686,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:3689,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3691,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - base
    - handle
    argTypes:
    - struct evdns_base*
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3659
    functionDepth: 2
    functionLinenumber: 3659
    functionLinenumberEnd: 3692
    functionName: evdns_cancel_request
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - ASSERT_VALID_REQUEST
    - reply_schedule_callback
    - REQ_HEAD
    - EVDNS_LOCK
    - request_finished
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void evdns_cancel_request(struct evdns_base *base, struct evdns_request
      *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:3700,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3701,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3706,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3711,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3713,1
    - Dst: search_request_new
      Src: /src/libevent/evdns.c:3715,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3718,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - base
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3723
      start: 3695
    functionDepth: 8
    functionLinenumber: 3695
    functionLinenumberEnd: 3723
    functionName: evdns_base_resolve_ipv4
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_request_new
    - mm_calloc
    - EVDNS_UNLOCK
    - EVDNS_LOCK
    - mm_free
    - request_new
    - request_submit
    - log
    linkageType: ''
    returnType: struct evdns_request
    signature: "struct evdns_request *\nevdns_base_resolve_ipv4(struct evdns_base
      *base, const char *name, int flags,\n    evdns_callback_type callback, void
      *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/evdns.c:3728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3725
    functionDepth: 9
    functionLinenumber: 3725
    functionLinenumberEnd: 3730
    functionName: evdns_resolve_ipv4
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_ipv4
    linkageType: ''
    returnType: int
    signature: "int evdns_resolve_ipv4(const char *name, int flags,\n\t\t\t\t\t   evdns_callback_type
      callback, void *ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:3741,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3742,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3747,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3751,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3753,1
    - Dst: search_request_new
      Src: /src/libevent/evdns.c:3755,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3758,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - base
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3734
    functionDepth: 8
    functionLinenumber: 3734
    functionLinenumberEnd: 3763
    functionName: evdns_base_resolve_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_request_new
    - mm_calloc
    - EVDNS_UNLOCK
    - EVDNS_LOCK
    - mm_free
    - request_new
    - request_submit
    - log
    linkageType: ''
    returnType: struct evdns_request
    signature: "struct evdns_request *\nevdns_base_resolve_ipv6(struct evdns_base
      *base,\n    const char *name, int flags,\n    evdns_callback_type callback,
      void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_ipv6
      Src: /src/libevent/evdns.c:3767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3765
    functionDepth: 9
    functionLinenumber: 3765
    functionLinenumberEnd: 3769
    functionName: evdns_resolve_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_ipv6
    linkageType: ''
    returnType: int
    signature: "int evdns_resolve_ipv6(const char *name, int flags,\n    evdns_callback_type
      callback, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3777,1
    - Dst: ntohl
      Src: /src/libevent/evdns.c:3778,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:3779,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3784,1
    - Dst: log
      Src: /src/libevent/evdns.c:3789,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3790,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3793,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3795,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3797,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - base
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - struct in_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3771
    functionDepth: 8
    functionLinenumber: 3771
    functionLinenumberEnd: 3802
    functionName: evdns_base_resolve_reverse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - ntohl
    - EVUTIL_ASSERT
    - EVDNS_UNLOCK
    - EVDNS_LOCK
    - mm_free
    - request_new
    - request_submit
    - evutil_snprintf
    - log
    linkageType: ''
    returnType: struct evdns_request
    signature: 'struct evdns_request *

      evdns_base_resolve_reverse(struct evdns_base *base, const struct in_addr *in,
      int flags, evdns_callback_type callback, void *ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/evdns.c:3805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct in_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3807
      start: 3804
    functionDepth: 9
    functionLinenumber: 3804
    functionLinenumberEnd: 3807
    functionName: evdns_resolve_reverse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_reverse
    linkageType: ''
    returnType: int
    signature: int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_type
      callback, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3817,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3826,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:3826,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3827,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:3827,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3828,1
    - Dst: log
      Src: /src/libevent/evdns.c:3833,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3834,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3837,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3839,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3841,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 5
    argNames:
    - base
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - struct in6_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3846
      start: 3809
    functionDepth: 8
    functionLinenumber: 3809
    functionLinenumberEnd: 3846
    functionName: evdns_base_resolve_reverse_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - EVUTIL_ASSERT
    - EVDNS_UNLOCK
    - EVDNS_LOCK
    - strlen
    - mm_free
    - request_new
    - request_submit
    - log
    - memcpy
    linkageType: ''
    returnType: struct evdns_request
    signature: 'struct evdns_request *

      evdns_base_resolve_reverse_ipv6(struct evdns_base *base, const struct in6_addr
      *in, int flags, evdns_callback_type callback, void *ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_reverse_ipv6
      Src: /src/libevent/evdns.c:3849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct in6_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3848
    functionDepth: 9
    functionLinenumber: 3848
    functionLinenumberEnd: 3851
    functionName: evdns_resolve_reverse_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_reverse_ipv6
    linkageType: ''
    returnType: int
    signature: int evdns_resolve_reverse_ipv6(const struct in6_addr *in, int flags,
      evdns_callback_type callback, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3887,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct search_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3891
    functionName: search_state_decref
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void search_state_decref(struct search_state *const state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3895,1
    - Dst: memset
      Src: /src/libevent/evdns.c:3897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3902
      start: 3893
    functionDepth: 1
    functionLinenumber: 3893
    functionLinenumberEnd: 3902
    functionName: search_state_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - memset
    linkageType: ''
    returnType: struct search_state
    signature: 'struct search_state *

      search_state_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: search_state_decref
      Src: /src/libevent/evdns.c:3906,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:3908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3904
    functionDepth: 2
    functionLinenumber: 3904
    functionLinenumberEnd: 3909
    functionName: search_postfix_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_state_decref
    - search_state_new
    linkageType: ''
    returnType: void
    signature: void search_postfix_clear(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3915,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:3916,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3918
      start: 3912
    functionDepth: 3
    functionLinenumber: 3912
    functionLinenumberEnd: 3918
    functionName: evdns_base_search_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - search_postfix_clear
    linkageType: ''
    returnType: void
    signature: void evdns_base_search_clear(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_search_clear
      Src: /src/libevent/evdns.c:3922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3923
      start: 3920
    functionDepth: 4
    functionLinenumber: 3920
    functionLinenumberEnd: 3923
    functionName: evdns_search_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_search_clear
    linkageType: ''
    returnType: void
    signature: void evdns_search_clear(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:3930,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3932,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:3933,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3937,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3939,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - base
    - domain
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3925
    functionDepth: 2
    functionLinenumber: 3925
    functionLinenumberEnd: 3944
    functionName: search_postfix_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_state_new
    - mm_malloc
    - strlen
    - ASSERT_LOCKED
    - memcpy
    linkageType: ''
    returnType: void
    signature: void search_postfix_add(struct evdns_base *base, const char *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3961
      start: 3948
    functionDepth: 1
    functionLinenumber: 3948
    functionLinenumberEnd: 3961
    functionName: search_reverse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void search_reverse(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3966,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:3967,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - domain
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3969
      start: 3964
    functionDepth: 3
    functionLinenumber: 3964
    functionLinenumberEnd: 3969
    functionName: evdns_base_search_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - search_postfix_add
    linkageType: ''
    returnType: void
    signature: void evdns_base_search_add(struct evdns_base *base, const char *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_search_add
      Src: /src/libevent/evdns.c:3972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3970
    functionDepth: 4
    functionLinenumber: 3970
    functionLinenumberEnd: 3973
    functionName: evdns_search_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_search_add
    linkageType: ''
    returnType: void
    signature: void evdns_search_add(const char *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3978,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:3979,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - base
    - ndots
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3976
    functionDepth: 2
    functionLinenumber: 3976
    functionLinenumberEnd: 3983
    functionName: evdns_base_search_ndots_set
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - search_state_new
    linkageType: ''
    returnType: void
    signature: void evdns_base_search_ndots_set(struct evdns_base *base, const int
      ndots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_search_ndots_set
      Src: /src/libevent/evdns.c:3986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndots
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3984
    functionDepth: 3
    functionLinenumber: 3984
    functionLinenumberEnd: 3987
    functionName: evdns_search_ndots_set
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_search_ndots_set
    linkageType: ''
    returnType: void
    signature: void evdns_search_ndots_set(const int ndots)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3993,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:3994,1
    - Dst: gethostname
      Src: /src/libevent/evdns.c:3995,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:3996,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:3998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3999
      start: 3989
    functionDepth: 3
    functionLinenumber: 3989
    functionLinenumberEnd: 3999
    functionName: search_set_from_hostname
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_postfix_add
    - gethostname
    - ASSERT_LOCKED
    - search_postfix_clear
    - strchr
    linkageType: ''
    returnType: void
    signature: void search_set_from_hostname(struct evdns_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:4004,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4017,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4019,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4021,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4028,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - state
    - n
    - base_name
    argTypes:
    - struct search_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 4002
    functionDepth: 1
    functionLinenumber: 4002
    functionLinenumberEnd: 4030
    functionName: search_make_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strlen
    - EVUTIL_ASSERT
    - mm_malloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      search_make_new(const struct search_state *const state, int n, const char *const
      base_name)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4035,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4036,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4037,1
    - Dst: string_num_dots
      Src: /src/libevent/evdns.c:4043,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4044,1
    - Dst: search_make_new
      Src: /src/libevent/evdns.c:4048,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4050,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4051,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4055,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:4056,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4060,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:4066,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4069,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:4071,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - base
    - handle
    - type
    - name
    - flags
    argTypes:
    - struct evdns_base*
    - struct evdns_request*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4074
      start: 4032
    functionDepth: 8
    functionLinenumber: 4032
    functionLinenumberEnd: 4074
    functionName: search_request_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    - search_make_new
    - ASSERT_LOCKED
    - mm_strdup
    - string_num_dots
    - mm_free
    - request_new
    - request_submit
    linkageType: ''
    returnType: struct request
    signature: "struct request *\nsearch_request_new(struct evdns_base *base, struct
      evdns_request *handle,\n\t\t   int type, const char *const name, int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4086,1
    - Dst: string_num_dots
      Src: /src/libevent/evdns.c:4094,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4096,1
    - Dst: log
      Src: /src/libevent/evdns.c:4097,1
    - Dst: search_request_finished
      Src: /src/libevent/evdns.c:4099,1
    - Dst: search_make_new
      Src: /src/libevent/evdns.c:4106,1
    - Dst: log
      Src: /src/libevent/evdns.c:4108,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4109,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4110,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:4117,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:4117,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:4120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4081
    functionDepth: 8
    functionLinenumber: 4081
    functionLinenumberEnd: 4122
    functionName: search_try_next
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - search_make_new
    - REQ_HEAD
    - request_finished
    - ASSERT_LOCKED
    - search_request_finished
    - string_num_dots
    - mm_free
    - request_new
    - request_submit
    - log
    linkageType: ''
    returnType: int
    signature: int search_try_next(struct evdns_request *const handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4126,1
    - Dst: search_state_decref
      Src: /src/libevent/evdns.c:4128,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4124
    functionDepth: 2
    functionLinenumber: 4124
    functionLinenumberEnd: 4135
    functionName: search_request_finished
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - search_state_decref
    - ASSERT_LOCKED
    - mm_free
    linkageType: ''
    returnType: void
    signature: void search_request_finished(struct evdns_request *const handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4147,1
    - Dst: search_set_from_hostname
      Src: /src/libevent/evdns.c:4149,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4152
      start: 4140
    functionDepth: 6
    functionLinenumber: 4140
    functionLinenumberEnd: 4152
    functionName: evdns_resolv_set_defaults
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ASSERT_LOCKED
    - evdns_base_nameserver_ip_add
    - search_set_from_hostname
    linkageType: ''
    returnType: void
    signature: void evdns_resolv_set_defaults(struct evdns_base *base, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evdns.c:4161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - s
    - delim
    - state
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4155
    functionDepth: 0
    functionLinenumber: 4155
    functionLinenumberEnd: 4173
    functionName: strtok_r
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 6
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      strtok_r(char *s, const char *delim, char **state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/libevent/evdns.c:4181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4184
      start: 4177
    functionDepth: 0
    functionLinenumber: 4177
    functionLinenumberEnd: 4184
    functionName: strtoint
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int strtoint(const char *const str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtod
      Src: /src/libevent/evdns.c:4192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4200
      start: 4187
    functionDepth: 0
    functionLinenumber: 4187
    functionLinenumberEnd: 4200
    functionName: evdns_strtotimeval
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strtod
    linkageType: ''
    returnType: int
    signature: int evdns_strtotimeval(const char *const str, struct timeval *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - str
    - min
    - max
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4203
    functionDepth: 1
    functionLinenumber: 4203
    functionLinenumberEnd: 4215
    functionName: strtoint_clipped
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strtoint
    linkageType: ''
    returnType: int
    signature: int strtoint_clipped(const char *const str, int min, int max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4224,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4228,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:4229,1
    - Dst: evdns_request_remove
      Src: /src/libevent/evdns.c:4236,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:4237,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - base
    - maxinflight
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4246
      start: 4217
    functionDepth: 2
    functionLinenumber: 4217
    functionLinenumberEnd: 4246
    functionName: evdns_base_set_max_requests_inflight
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - evdns_request_insert
    - EVUTIL_ASSERT
    - ASSERT_LOCKED
    - mm_free
    - evdns_request_remove
    linkageType: ''
    returnType: int
    signature: int evdns_base_set_max_requests_inflight(struct evdns_base *base, int
      maxinflight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4254,1
    - Dst: evdns_base_set_option_impl
      Src: /src/libevent/evdns.c:4255,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - base
    - option
    - val
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4258
      start: 4249
    functionDepth: 1
    functionLinenumber: 4249
    functionLinenumberEnd: 4258
    functionName: evdns_base_set_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_base_set_option_impl
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: "int evdns_base_set_option(struct evdns_base *base,\n    const char
      *option, const char *val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:4266,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4267,1
    - Dst: strncmp
      Src: /src/libevent/evdns.c:4269,1
    - Dst: strncmp
      Src: /src/libevent/evdns.c:4271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - optionname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4274
      start: 4260
    functionDepth: 0
    functionLinenumber: 4260
    functionLinenumberEnd: 4274
    functionName: str_matches_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int str_matches_option(const char *s1, const char *optionname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4282,1
    - Dst: log
      Src: /src/libevent/evdns.c:4286,1
    - Dst: log
      Src: /src/libevent/evdns.c:4291,1
    - Dst: log
      Src: /src/libevent/evdns.c:4295,1
    - Dst: log
      Src: /src/libevent/evdns.c:4301,1
    - Dst: log
      Src: /src/libevent/evdns.c:4305,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - port
    - option
    - value
    argTypes:
    - struct evdns_server_port*
    - enum evdns_server_option
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4277
    functionDepth: 1
    functionLinenumber: 4277
    functionLinenumberEnd: 4312
    functionName: evdns_server_port_set_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - log
    linkageType: ''
    returnType: int
    signature: "int evdns_server_port_set_option(struct evdns_server_port *port,\n\tenum
      evdns_server_option option, size_t value)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4318,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4319,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4320,1
    - Dst: log
      Src: /src/libevent/evdns.c:4323,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:4324,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4327,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4329,1
    - Dst: log
      Src: /src/libevent/evdns.c:4331,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4332,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4333,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4335,1
    - Dst: log
      Src: /src/libevent/evdns.c:4337,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4339,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4341,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4342,1
    - Dst: log
      Src: /src/libevent/evdns.c:4345,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4348,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4349,1
    - Dst: log
      Src: /src/libevent/evdns.c:4352,1
    - Dst: evdns_base_set_max_requests_inflight
      Src: /src/libevent/evdns.c:4354,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4355,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4356,1
    - Dst: log
      Src: /src/libevent/evdns.c:4360,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4362,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4363,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4367,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/evdns.c:4372,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4376,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4378,1
    - Dst: log
      Src: /src/libevent/evdns.c:4382,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4384,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4386,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4387,1
    - Dst: log
      Src: /src/libevent/evdns.c:4390,1
    - Dst: log
      Src: /src/libevent/evdns.c:4396,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4399,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4400,1
    - Dst: log
      Src: /src/libevent/evdns.c:4403,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4406,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4407,1
    - Dst: log
      Src: /src/libevent/evdns.c:4410,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4412,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4413,1
    - Dst: log
      Src: /src/libevent/evdns.c:4416,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4418,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4420,1
    - Dst: log
      Src: /src/libevent/evdns.c:4422,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4423,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4424,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4426,1
    - Dst: log
      Src: /src/libevent/evdns.c:4427,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4429,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4431,1
    - Dst: log
      Src: /src/libevent/evdns.c:4432,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4434,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4435,1
    - Dst: log
      Src: /src/libevent/evdns.c:4438,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 150
    argCount: 4
    argNames:
    - base
    - option
    - val
    - flags
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4442
      start: 4314
    functionDepth: 3
    functionLinenumber: 4314
    functionLinenumberEnd: 4442
    functionName: evdns_base_set_option_impl
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evdns_base_set_max_requests_inflight
    - search_state_new
    - evutil_parse_sockaddr_port
    - strtoint_clipped
    - strtoint
    - strlen
    - ASSERT_LOCKED
    - evdns_strtotimeval
    - log
    - str_matches_option
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int evdns_base_set_option_impl(struct evdns_base *base,\n    const
      char *option, const char *val, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4448,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/evdns.c:4449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - option
    - val
    - flags
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4444
    functionDepth: 2
    functionLinenumber: 4444
    functionLinenumberEnd: 4450
    functionName: evdns_set_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_set_option
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_set_option(const char *option, const char *val, int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strtok_r
      Src: /src/libevent/evdns.c:4459,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4460,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4463,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4467,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4468,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:4471,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:4472,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4474,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:4476,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:4479,1
    - Dst: search_reverse
      Src: /src/libevent/evdns.c:4481,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4482,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:4485,1
    - Dst: evdns_base_set_option_impl
      Src: /src/libevent/evdns.c:4486,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - base
    - start
    - flags
    argTypes:
    - struct evdns_base*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4490
      start: 4452
    functionDepth: 6
    functionLinenumber: 4452
    functionLinenumberEnd: 4490
    functionName: resolv_conf_parse_line
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_reverse
    - search_postfix_add
    - evdns_base_nameserver_ip_add
    - ASSERT_LOCKED
    - search_postfix_clear
    - evdns_base_set_option_impl
    - strtok_r
    - strchr
    - strcmp
    linkageType: ''
    returnType: void
    signature: void resolv_conf_parse_line(struct evdns_base *base, char *const start,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4504,1
    - Dst: evdns_base_resolv_conf_parse_impl
      Src: /src/libevent/evdns.c:4505,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - base
    - flags
    - filename
    argTypes:
    - struct evdns_base*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4508
      start: 4501
    functionDepth: 1
    functionLinenumber: 4501
    functionLinenumberEnd: 4508
    functionName: evdns_base_resolv_conf_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_base_resolv_conf_parse_impl
    linkageType: ''
    returnType: int
    signature: int evdns_base_resolv_conf_parse(struct evdns_base *base, int flags,
      const char *const filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHGetSpecialFolderPathA
      Src: /src/libevent/evdns.c:4524,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4526,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4526,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4527,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:4528,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:4531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4533
      start: 4510
    functionDepth: 2
    functionLinenumber: 4510
    functionLinenumberEnd: 4533
    functionName: evdns_get_default_hosts_filename
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - strlen
    - mm_strdup
    - evutil_snprintf
    - SHGetSpecialFolderPathA
    linkageType: ''
    returnType: char
    signature: 'char *

      evdns_get_default_hosts_filename(void)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:4543,1
    - Dst: evdns_get_default_hosts_filename
      Src: /src/libevent/evdns.c:4550,1
    - Dst: evdns_base_load_hosts
      Src: /src/libevent/evdns.c:4551,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4553,1
    - Dst: evdns_resolv_set_defaults
      Src: /src/libevent/evdns.c:4557,1
    - Dst: evutil_read_file_
      Src: /src/libevent/evdns.c:4561,1
    - Dst: evdns_resolv_set_defaults
      Src: /src/libevent/evdns.c:4564,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:4573,1
    - Dst: resolv_conf_parse_line
      Src: /src/libevent/evdns.c:4575,1
    - Dst: resolv_conf_parse_line
      Src: /src/libevent/evdns.c:4579,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4586,1
    - Dst: search_set_from_hostname
      Src: /src/libevent/evdns.c:4590,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4593,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - base
    - flags
    - filename
    argTypes:
    - struct evdns_base*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4535
    functionDepth: 7
    functionLinenumber: 4535
    functionLinenumberEnd: 4595
    functionName: evdns_base_resolv_conf_parse_impl
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evdns_resolv_set_defaults
    - evdns_base_load_hosts
    - resolv_conf_parse_line
    - evdns_base_nameserver_ip_add
    - evutil_read_file_
    - mm_free
    - search_set_from_hostname
    - evdns_get_default_hosts_filename
    - log
    - strchr
    linkageType: ''
    returnType: int
    signature: int evdns_base_resolv_conf_parse_impl(struct evdns_base *base, int
      flags, const char *const filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4600,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/evdns.c:4601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - flags
    - filename
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4602
      start: 4597
    functionDepth: 2
    functionLinenumber: 4597
    functionLinenumberEnd: 4602
    functionName: evdns_resolv_conf_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolv_conf_parse
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_resolv_conf_parse(int flags, const char *const filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4612,1
    - Dst: isspace
      Src: /src/libevent/evdns.c:4614,1
    - Dst: isdigit
      Src: /src/libevent/evdns.c:4617,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4620,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4622,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4624,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4625,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - base
    - ips
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4629
      start: 4607
    functionDepth: 6
    functionLinenumber: 4607
    functionLinenumberEnd: 4629
    functionName: evdns_nameserver_ip_add_line
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - isdigit
    - evdns_base_nameserver_ip_add
    - ASSERT_LOCKED
    - mm_free
    - isspace
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_ip_add_line(struct evdns_base *base, const char
      *ips)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4646,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evdns.c:4647,1
    - Dst: TEXT
      Src: /src/libevent/evdns.c:4648,1
    - Dst: log
      Src: /src/libevent/evdns.c:4649,1
    - Dst: GetProcAddress
      Src: /src/libevent/evdns.c:4653,1
    - Dst: log
      Src: /src/libevent/evdns.c:4654,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4659,1
    - Dst: fn
      Src: /src/libevent/evdns.c:4662,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4668,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4669,1
    - Dst: fn
      Src: /src/libevent/evdns.c:4672,1
    - Dst: log
      Src: /src/libevent/evdns.c:4674,1
    - Dst: inet_ntop
      Src: /src/libevent/evdns.c:4685,1
    - Dst: inet_ntop
      Src: /src/libevent/evdns.c:4687,1
    - Dst: strncmp
      Src: /src/libevent/evdns.c:4691,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4695,1
    - Dst: log
      Src: /src/libevent/evdns.c:4697,1
    - Dst: log
      Src: /src/libevent/evdns.c:4701,1
    - Dst: log
      Src: /src/libevent/evdns.c:4709,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4718,1
    - Dst: FreeLibrary
      Src: /src/libevent/evdns.c:4720,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4635
    functionDepth: 6
    functionLinenumber: 4635
    functionLinenumberEnd: 4722
    functionName: load_nameservers_with_getadaptersaddresses_unlocked
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - fn
    - evutil_load_windows_system_library_
    - strncmp
    - inet_ntop
    - evdns_base_nameserver_ip_add
    - ASSERT_LOCKED
    - mm_free
    - GetProcAddress
    - TEXT
    - log
    - FreeLibrary
    linkageType: ''
    returnType: int
    signature: int load_nameservers_with_getadaptersaddresses_unlocked(struct evdns_base
      *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4728,1
    - Dst: load_nameservers_with_getadaptersaddresses_unlocked
      Src: /src/libevent/evdns.c:4729,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4724
    functionDepth: 7
    functionLinenumber: 4724
    functionLinenumberEnd: 4732
    functionName: load_nameservers_with_getadaptersaddresses
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - load_nameservers_with_getadaptersaddresses_unlocked
    linkageType: ''
    returnType: int
    signature: int load_nameservers_with_getadaptersaddresses(struct evdns_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4741,1
    - Dst: RegQueryValueEx
      Src: /src/libevent/evdns.c:4742,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4745,1
    - Dst: RegQueryValueEx
      Src: /src/libevent/evdns.c:4748,1
    - Dst: evdns_nameserver_ip_add_line
      Src: /src/libevent/evdns.c:4750,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - base
    - key
    - subkey
    argTypes:
    - struct evdns_base*
    - HKEY
    - TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4734
    functionDepth: 7
    functionLinenumber: 4734
    functionLinenumberEnd: 4755
    functionName: config_nameserver_from_reg_key
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - ASSERT_LOCKED
    - mm_free
    - RegQueryValueEx
    - evdns_nameserver_ip_add_line
    linkageType: ''
    returnType: int
    signature: int config_nameserver_from_reg_key(struct evdns_base *base, HKEY key,
      const TCHAR *subkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4775,1
    - Dst: GetVersion
      Src: /src/libevent/evdns.c:4777,1
    - Dst: RegOpenKeyEx
      Src: /src/libevent/evdns.c:4780,1
    - Dst: log
      Src: /src/libevent/evdns.c:4782,1
    - Dst: GetLastError
      Src: /src/libevent/evdns.c:4782,1
    - Dst: RegOpenKeyEx
      Src: /src/libevent/evdns.c:4785,1
    - Dst: TEXT
      Src: /src/libevent/evdns.c:4785,1
    - Dst: log
      Src: /src/libevent/evdns.c:4789,1
    - Dst: GetLastError
      Src: /src/libevent/evdns.c:4789,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4792,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4793,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4794,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4795,1
    - Dst: RegCloseKey
      Src: /src/libevent/evdns.c:4796,1
    - Dst: RegCloseKey
      Src: /src/libevent/evdns.c:4797,1
    - Dst: RegOpenKeyEx
      Src: /src/libevent/evdns.c:4800,1
    - Dst: log
      Src: /src/libevent/evdns.c:4802,1
    - Dst: GetLastError
      Src: /src/libevent/evdns.c:4802,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4805,1
    - Dst: RegCloseKey
      Src: /src/libevent/evdns.c:4806,1
    - Dst: log
      Src: /src/libevent/evdns.c:4810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4815
      start: 4761
    functionDepth: 1
    functionLinenumber: 4761
    functionLinenumberEnd: 4815
    functionName: load_nameservers_from_registry
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TRY
    - RegOpenKeyEx
    - RegCloseKey
    - GetVersion
    - ASSERT_LOCKED
    - GetLastError
    - TEXT
    - log
    linkageType: ''
    returnType: int
    signature: int load_nameservers_from_registry(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - k
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4774
      start: 4766
    functionDepth: 0
    functionLinenumber: 4766
    functionLinenumberEnd: 4774
    functionName: TRY
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY(k, name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4826,1
    - Dst: evdns_get_default_hosts_filename
      Src: /src/libevent/evdns.c:4827,1
    - Dst: log
      Src: /src/libevent/evdns.c:4828,1
    - Dst: evdns_base_load_hosts
      Src: /src/libevent/evdns.c:4829,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4831,1
    - Dst: load_nameservers_with_getadaptersaddresses_unlocked
      Src: /src/libevent/evdns.c:4833,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4834,1
    - Dst: load_nameservers_from_registry
      Src: /src/libevent/evdns.c:4837,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4841
      start: 4817
    functionDepth: 7
    functionLinenumber: 4817
    functionLinenumberEnd: 4841
    functionName: evdns_base_config_windows_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - load_nameservers_from_registry
    - load_nameservers_with_getadaptersaddresses_unlocked
    - evdns_base_load_hosts
    - EVDNS_LOCK
    - mm_free
    - EVDNS_UNLOCK
    - evdns_get_default_hosts_filename
    - log
    linkageType: ''
    returnType: int
    signature: int evdns_base_config_windows_nameservers(struct evdns_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4847,1
    - Dst: evdns_base_config_windows_nameservers
      Src: /src/libevent/evdns.c:4850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4843
    functionDepth: 8
    functionLinenumber: 4843
    functionLinenumberEnd: 4852
    functionName: evdns_config_windows_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_config_windows_nameservers
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_config_windows_nameservers(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_secure_rng_init
      Src: /src/libevent/evdns.c:4860,1
    - Dst: log
      Src: /src/libevent/evdns.c:4861,1
    - Dst: evutil_set_evdns_getaddrinfo_fn_
      Src: /src/libevent/evdns.c:4869,1
    - Dst: evutil_set_evdns_getaddrinfo_cancel_fn_
      Src: /src/libevent/evdns.c:4870,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4872,1
    - Dst: memset
      Src: /src/libevent/evdns.c:4875,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/evdns.c:4878,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4879,1
    - Dst: evdns_base_set_max_requests_inflight
      Src: /src/libevent/evdns.c:4884,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evdns.c:4907,1
    - Dst: SPLAY_INIT
      Src: /src/libevent/evdns.c:4908,1
    - Dst: log
      Src: /src/libevent/evdns.c:4919,1
    - Dst: evdns_base_config_windows_nameservers
      Src: /src/libevent/evdns.c:4937,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/evdns.c:4939,1
    - Dst: evutil_resolvconf_filename_
      Src: /src/libevent/evdns.c:4939,1
    - Dst: evdns_base_free_and_unlock
      Src: /src/libevent/evdns.c:4942,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4949,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 2
    argNames:
    - event_base
    - flags
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4951
      start: 4855
    functionDepth: 8
    functionLinenumber: 4855
    functionLinenumberEnd: 4951
    functionName: evdns_base_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 5
    functionsReached:
    - evdns_base_set_max_requests_inflight
    - mm_malloc
    - evutil_resolvconf_filename_
    - evutil_set_evdns_getaddrinfo_cancel_fn_
    - EVDNS_UNLOCK
    - evdns_base_resolv_conf_parse
    - EVDNS_LOCK
    - TAILQ_INIT
    - evdns_base_config_windows_nameservers
    - evutil_secure_rng_init
    - evdns_base_free_and_unlock
    - EVTHREAD_ALLOC_LOCK
    - SPLAY_INIT
    - log
    - memset
    - evutil_set_evdns_getaddrinfo_fn_
    linkageType: ''
    returnType: struct evdns_base
    signature: 'struct evdns_base *

      evdns_base_new(struct event_base *event_base, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4963
      start: 4953
    functionDepth: 9
    functionLinenumber: 4953
    functionLinenumberEnd: 4963
    functionName: evdns_init
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_init(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4984
      start: 4965
    functionDepth: 0
    functionLinenumber: 4965
    functionLinenumberEnd: 4984
    functionName: evdns_err_to_string
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evdns_err_to_string(int err)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:4990,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:4991,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:4992,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:4994,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:4996,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:4999,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:5000,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5002
      start: 4986
    functionDepth: 3
    functionLinenumber: 4986
    functionLinenumberEnd: 5002
    functionName: evdns_nameserver_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - disconnect_and_free_connection
    - event_debug_unassign
    - evdns_cancel_request
    - evutil_closesocket
    - event_del
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evdns_nameserver_free(struct nameserver *server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/libevent/evdns.c:5007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct evdns_cache*
    - struct evdns_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5008
      start: 5004
    functionDepth: 0
    functionLinenumber: 5004
    functionLinenumberEnd: 5008
    functionName: evdns_cache_compare
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int evdns_cache_compare(struct evdns_cache *a, struct evdns_cache *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_REMOVE
      Src: /src/libevent/evdns.c:5016,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5017,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:5018,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5019,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct evdns_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5021
      start: 5013
    functionDepth: 2
    functionLinenumber: 5013
    functionLinenumberEnd: 5021
    functionName: evdns_cache_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - SPLAY_REMOVE
    - evutil_freeaddrinfo
    - evtimer_del
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evdns_cache_free(struct evdns_cache *cache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:5036,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:5037,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:5042,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:5043,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:5043,1
    - Dst: evdns_nameserver_free
      Src: /src/libevent/evdns.c:5052,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5062,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5064,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evdns.c:5070,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evdns.c:5071,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5072,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5076,1
    - Dst: SPLAY_EMPTY
      Src: /src/libevent/evdns.c:5078,1
    - Dst: evdns_cache_free
      Src: /src/libevent/evdns.c:5079,1
    - Dst: SPLAY_ROOT
      Src: /src/libevent/evdns.c:5079,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5082,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evdns.c:5083,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5085,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - base
    - fail_requests
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5086
      start: 5023
    functionDepth: 4
    functionLinenumber: 5023
    functionLinenumberEnd: 5086
    functionName: evdns_base_free_and_unlock
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - SPLAY_EMPTY
    - evdns_cache_free
    - reply_schedule_callback
    - REQ_HEAD
    - evdns_nameserver_free
    - request_finished
    - EVTHREAD_FREE_LOCK
    - TAILQ_REMOVE
    - mm_free
    - EVDNS_UNLOCK
    - SPLAY_ROOT
    linkageType: ''
    returnType: void
    signature: void evdns_base_free_and_unlock(struct evdns_base *base, int fail_requests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5091,1
    - Dst: evdns_base_free_and_unlock
      Src: /src/libevent/evdns.c:5092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - base
    - fail_requests
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5088
    functionDepth: 5
    functionLinenumber: 5088
    functionLinenumberEnd: 5093
    functionName: evdns_base_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_base_free_and_unlock
    linkageType: ''
    returnType: void
    signature: void evdns_base_free(struct evdns_base *base, int fail_requests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5099,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evdns.c:5100,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evdns.c:5101,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5102,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5105
      start: 5095
    functionDepth: 1
    functionLinenumber: 5095
    functionLinenumberEnd: 5105
    functionName: evdns_base_clear_host_addresses
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - EVDNS_LOCK
    - TAILQ_REMOVE
    - mm_free
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void evdns_base_clear_host_addresses(struct evdns_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_free
      Src: /src/libevent/evdns.c:5113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fail_requests
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5116
      start: 5107
    functionDepth: 6
    functionLinenumber: 5107
    functionLinenumberEnd: 5116
    functionName: evdns_shutdown
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_free
    linkageType: ''
    returnType: void
    signature: void evdns_shutdown(int fail_requests)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strtok_r
      Src: /src/libevent/evdns.c:5123,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:5127,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5134,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/evdns.c:5135,1
    - Dst: sockaddr_getport
      Src: /src/libevent/evdns.c:5140,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:5146,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:5152,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:5154,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5157,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5158,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5159,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evdns.c:5162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - base
    - line
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5170
      start: 5118
    functionDepth: 3
    functionLinenumber: 5118
    functionLinenumberEnd: 5170
    functionName: evdns_base_parse_hosts_line
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_parse_sockaddr_port
    - mm_calloc
    - EVUTIL_ASSERT
    - strchr
    - strlen
    - ASSERT_LOCKED
    - TAILQ_INSERT_TAIL
    - strtok_r
    - memset
    - sockaddr_getport
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_base_parse_hosts_line(struct evdns_base *base, char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:5179,1
    - Dst: evutil_read_file_
      Src: /src/libevent/evdns.c:5182,1
    - Dst: strlcpy
      Src: /src/libevent/evdns.c:5184,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5185,1
    - Dst: strlcpy
      Src: /src/libevent/evdns.c:5186,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5187,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:5195,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5199,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5202,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - base
    - hosts_fname
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5209
      start: 5172
    functionDepth: 4
    functionLinenumber: 5172
    functionLinenumberEnd: 5209
    functionName: evdns_base_load_hosts_impl
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_parse_hosts_line
    - ASSERT_LOCKED
    - evutil_read_file_
    - mm_free
    - strlcpy
    - strchr
    linkageType: ''
    returnType: int
    signature: int evdns_base_load_hosts_impl(struct evdns_base *base, const char
      *hosts_fname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5217,1
    - Dst: evdns_base_load_hosts_impl
      Src: /src/libevent/evdns.c:5218,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - base
    - hosts_fname
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5221
      start: 5211
    functionDepth: 5
    functionLinenumber: 5211
    functionLinenumberEnd: 5221
    functionName: evdns_base_load_hosts
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_base_load_hosts_impl
    linkageType: ''
    returnType: int
    signature: int evdns_base_load_hosts(struct evdns_base *base, const char *hosts_fname)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e1
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5279
      start: 5269
    functionDepth: 0
    functionLinenumber: 5269
    functionLinenumberEnd: 5279
    functionName: evdns_err_to_getaddrinfo_err
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evdns_err_to_getaddrinfo_err(int e1)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5290
      start: 5282
    functionDepth: 0
    functionLinenumber: 5282
    functionLinenumberEnd: 5290
    functionName: getaddrinfo_merge_err
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getaddrinfo_merge_err(int e1, int e2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5298,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5300,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:5301,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5302,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5305
      start: 5292
    functionDepth: 2
    functionLinenumber: 5292
    functionLinenumberEnd: 5305
    functionName: free_getaddrinfo_request
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_freeaddrinfo
    - event_del
    - mm_free
    linkageType: ''
    returnType: void
    signature: void free_getaddrinfo_request(struct evdns_getaddrinfo_request *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - ai
    argTypes:
    - struct evdns_getaddrinfo_request*
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5315
      start: 5307
    functionDepth: 0
    functionLinenumber: 5307
    functionLinenumberEnd: 5315
    functionName: add_cname_to_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_cname_to_reply(struct evdns_getaddrinfo_request *data,\n
      \   struct evutil_addrinfo *ai)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5331,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5333,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5335,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5340,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5342,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5344,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5349,1
    - Dst: add_cname_to_reply
      Src: /src/libevent/evdns.c:5353,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5354,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5360,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5369,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5371
      start: 5321
    functionDepth: 3
    functionLinenumber: 5321
    functionLinenumberEnd: 5371
    functionName: evdns_getaddrinfo_timeout_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - struct evdns_getaddrinfo_request*::user_cb
    - evdns_cancel_request
    - EVUTIL_ASSERT
    - free_getaddrinfo_request
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - add_cname_to_reply
    linkageType: ''
    returnType: void
    signature: void evdns_getaddrinfo_timeout_cb(evutil_socket_t fd, short what, void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_add
      Src: /src/libevent/evdns.c:5377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evdns_base
    - data
    argTypes:
    - struct evdns_base*
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5373
    functionDepth: 1
    functionLinenumber: 5373
    functionLinenumberEnd: 5378
    functionName: evdns_getaddrinfo_set_timeout
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - event_add
    linkageType: ''
    returnType: int
    signature: "int evdns_getaddrinfo_set_timeout(struct evdns_base *evdns_base,\n
      \   struct evdns_getaddrinfo_request *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5385
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5385
    functionName: evdns_result_is_answer
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evdns_result_is_answer(int result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5392,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5393,1
    - Dst: evdns_cache_free
      Src: /src/libevent/evdns.c:5394,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5396
      start: 5387
    functionDepth: 3
    functionLinenumber: 5387
    functionLinenumberEnd: 5396
    functionName: evdns_ttl_expired
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_cache_free
    - log
    linkageType: ''
    returnType: void
    signature: void evdns_ttl_expired(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5405,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5406,1
    - Dst: SPLAY_FIND
      Src: /src/libevent/evdns.c:5408,1
    - Dst: log
      Src: /src/libevent/evdns.c:5410,1
    - Dst: evdns_cache_free
      Src: /src/libevent/evdns.c:5411,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:5414,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:5416,1
    - Dst: evutil_dup_addrinfo_
      Src: /src/libevent/evdns.c:5417,1
    - Dst: SPLAY_INSERT
      Src: /src/libevent/evdns.c:5418,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:5419,1
    - Dst: timerclear
      Src: /src/libevent/evdns.c:5420,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:5422,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - dns_base
    - nodename
    - res
    - ttl
    argTypes:
    - struct evdns_base*
    - char*
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5425
      start: 5398
    functionDepth: 3
    functionLinenumber: 5398
    functionLinenumberEnd: 5425
    functionName: evdns_cache_write
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_cache_free
    - SPLAY_INSERT
    - mm_calloc
    - evtimer_assign
    - EVDNS_LOCK
    - SPLAY_FIND
    - mm_strdup
    - timerclear
    - EVDNS_UNLOCK
    - evutil_dup_addrinfo_
    - log
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void evdns_cache_write(struct evdns_base *dns_base, char *nodename,
      struct evutil_addrinfo *res, int ttl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5439,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5440,1
    - Dst: SPLAY_FIND
      Src: /src/libevent/evdns.c:5442,1
    - Dst: log
      Src: /src/libevent/evdns.c:5445,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evdns.c:5455,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:5461,1
    - Dst: sockaddr_setport
      Src: /src/libevent/evdns.c:5463,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5464,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5467,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5477,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 5
    argNames:
    - base
    - nodename
    - hints
    - port
    - res
    argTypes:
    - struct evdns_base*
    - char*
    - struct evutil_addrinfo*
    - ev_uint16_t
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5480
      start: 5427
    functionDepth: 2
    functionLinenumber: 5427
    functionLinenumberEnd: 5480
    functionName: evdns_cache_lookup
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_new_addrinfo_
    - sockaddr_setport
    - evutil_addrinfo_append_
    - EVDNS_LOCK
    - SPLAY_FIND
    - evutil_freeaddrinfo
    - mm_strdup
    - EVDNS_UNLOCK
    - log
    linkageType: ''
    returnType: int
    signature: "int evdns_cache_lookup(struct evdns_base *base,\n    const char *nodename,
      struct evutil_addrinfo *hints, ev_uint16_t port,\n    struct evutil_addrinfo
      **res)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5501,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/evdns.c:5503,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/evdns.c:5506,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5512,1
    - Dst: evdns_result_is_answer
      Src: /src/libevent/evdns.c:5513,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5522,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5534,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5541,1
    - Dst: evdns_err_to_getaddrinfo_err
      Src: /src/libevent/evdns.c:5551,1
    - Dst: evdns_getaddrinfo_set_timeout
      Src: /src/libevent/evdns.c:5561,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5568,1
    - Dst: add_cname_to_reply
      Src: /src/libevent/evdns.c:5572,1
    - Dst: evdns_cache_write
      Src: /src/libevent/evdns.c:5574,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5576,1
    - Dst: getaddrinfo_merge_err
      Src: /src/libevent/evdns.c:5580,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5582,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5584,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5593,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5594,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5600,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5603,1
    - Dst: htons
      Src: /src/libevent/evdns.c:5605,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5615,1
    - Dst: htons
      Src: /src/libevent/evdns.c:5617,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5631,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evdns.c:5632,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5635,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5637,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5639,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5642,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5645,1
    - Dst: evdns_getaddrinfo_set_timeout
      Src: /src/libevent/evdns.c:5651,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5661,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5664,1
    - Dst: add_cname_to_reply
      Src: /src/libevent/evdns.c:5671,1
    - Dst: evdns_cache_write
      Src: /src/libevent/evdns.c:5673,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5675,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5678,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 132
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5482
    functionDepth: 4
    functionLinenumber: 5482
    functionLinenumberEnd: 5680
    functionName: evdns_getaddrinfo_gotresolve
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_err_to_getaddrinfo_err
    - evdns_cancel_request
    - EVUTIL_ASSERT
    - evutil_freeaddrinfo
    - EVDNS_UNLOCK
    - EVUTIL_UPCAST
    - evutil_new_addrinfo_
    - evutil_addrinfo_append_
    - getaddrinfo_merge_err
    - evdns_getaddrinfo_set_timeout
    - evdns_result_is_answer
    - free_getaddrinfo_request
    - memset
    - add_cname_to_reply
    - memcpy
    - struct evdns_getaddrinfo_request*::user_cb
    - htons
    - EVDNS_LOCK
    - evdns_cache_write
    linkageType: ''
    returnType: void
    signature: "void evdns_getaddrinfo_gotresolve(int result, char type, int count,\n
      \   int ttl, void *addresses, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_NEXT
      Src: /src/libevent/evdns.c:5689,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evdns.c:5691,1
    - Dst: TAILQ_NEXT
      Src: /src/libevent/evdns.c:5693,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/evdns.c:5694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - base
    - hostname
    - find_after
    argTypes:
    - struct evdns_base*
    - char*
    - struct hosts_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5698
      start: 5682
    functionDepth: 2
    functionLinenumber: 5682
    functionLinenumberEnd: 5698
    functionName: find_hosts_entry
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evutil_ascii_strcasecmp
    - TAILQ_NEXT
    linkageType: ''
    returnType: struct hosts_entry
    signature: "struct hosts_entry *\nfind_hosts_entry(struct evdns_base *base, const
      char *hostname,\n    struct hosts_entry *find_after)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5710,1
    - Dst: find_hosts_entry
      Src: /src/libevent/evdns.c:5711,1
    - Dst: find_hosts_entry
      Src: /src/libevent/evdns.c:5712,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evdns.c:5718,1
    - Dst: sockaddr_setport
      Src: /src/libevent/evdns.c:5723,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5724,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5726,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5736,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - base
    - nodename
    - hints
    - port
    - res
    argTypes:
    - struct evdns_base*
    - char*
    - struct evutil_addrinfo*
    - ev_uint16_t
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5739
      start: 5700
    functionDepth: 3
    functionLinenumber: 5700
    functionLinenumberEnd: 5739
    functionName: evdns_getaddrinfo_fromhosts
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - find_hosts_entry
    - evutil_new_addrinfo_
    - sockaddr_setport
    - evutil_addrinfo_append_
    - EVDNS_LOCK
    - evutil_freeaddrinfo
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: "int evdns_getaddrinfo_fromhosts(struct evdns_base *base,\n    const
      char *nodename, struct evutil_addrinfo *hints, ev_uint16_t port,\n    struct
      evutil_addrinfo **res)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5758,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5761,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/evdns.c:5769,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5770,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5775,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5777,1
    - Dst: evutil_adjust_hints_for_addrconfig_
      Src: /src/libevent/evdns.c:5781,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evdns.c:5788,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5790,1
    - Dst: evdns_getaddrinfo_fromhosts
      Src: /src/libevent/evdns.c:5795,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5797,1
    - Dst: evdns_cache_lookup
      Src: /src/libevent/evdns.c:5803,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5805,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:5813,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5815,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5819,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:5826,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5843,1
    - Dst: log
      Src: /src/libevent/evdns.c:5846,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/evdns.c:5849,1
    - Dst: log
      Src: /src/libevent/evdns.c:5857,1
    - Dst: evdns_base_resolve_ipv6
      Src: /src/libevent/evdns.c:5860,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:5868,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5873,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5878,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5879,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 6
    argNames:
    - dns_base
    - nodename
    - servname
    - hints_in
    - cb
    - arg
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    - struct evutil_addrinfo*
    - evdns_getaddrinfo_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5882
      start: 5741
    functionDepth: 9
    functionLinenumber: 5741
    functionLinenumberEnd: 5882
    functionName: evdns_getaddrinfo
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - cb
    - evdns_base_resolve_ipv4
    - evdns_cache_lookup
    - EVDNS_UNLOCK
    - evutil_adjust_hints_for_addrconfig_
    - evtimer_assign
    - EVDNS_LOCK
    - free_getaddrinfo_request
    - evutil_getaddrinfo_common_
    - mm_strdup
    - evdns_base_resolve_ipv6
    - evutil_getaddrinfo
    - evdns_getaddrinfo_fromhosts
    - log
    - memset
    - memcpy
    linkageType: ''
    returnType: struct evdns_getaddrinfo_request
    signature: "struct evdns_getaddrinfo_request *\nevdns_getaddrinfo(struct evdns_base
      *dns_base,\n    const char *nodename, const char *servname,\n    const struct
      evutil_addrinfo *hints_in,\n    evdns_getaddrinfo_cb cb, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5887,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5889,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:5892,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5895,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5897,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5899
      start: 5884
    functionDepth: 3
    functionLinenumber: 5884
    functionLinenumberEnd: 5899
    functionName: evdns_getaddrinfo_cancel
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - event_del
    - evdns_cancel_request
    linkageType: ''
    returnType: void
    signature: void evdns_getaddrinfo_cancel(struct evdns_getaddrinfo_request *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/openssl-compat.h:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 19
    functionName: BIO_meth_new
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_meth_new(int type, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: BIO_meth_set_write
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_write(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: BIO_meth_set_read
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_read(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: BIO_meth_set_puts
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_puts(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: BIO_meth_set_ctrl
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_ctrl(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BIO_meth_set_create
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_create(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: BIO_meth_set_destroy
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_destroy(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: BIO_set_init
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_init(b, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: BIO_set_data
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_data(b, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: BIO_set_shutdown
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_shutdown(b, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BIO_get_init
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_init(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: BIO_get_data
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_data(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: BIO_get_shutdown
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_shutdown(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: BIO_get_init
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_init(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: min_heap_elem_greater
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min_heap_elem_greater(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: min_heap_ctor_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void min_heap_ctor_(min_heap_t* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/minheap-internal.h:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: min_heap_dtor_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void min_heap_dtor_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: min_heap_elem_init_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void min_heap_elem_init_(struct event* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: min_heap_empty_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int min_heap_empty_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: min_heap_size_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t min_heap_size_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: min_heap_top_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event
    signature: struct event * min_heap_top_(min_heap_t* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_reserve_
      Src: /src/libevent/minheap-internal.h:73,1
    - Dst: min_heap_shift_up_
      Src: /src/libevent/minheap-internal.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - min_heap_t*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: min_heap_push_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_shift_up_
    - min_heap_reserve_
    linkageType: ''
    returnType: int
    signature: int min_heap_push_(min_heap_t* s, struct event* e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_shift_down_
      Src: /src/libevent/minheap-internal.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: min_heap_pop_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_shift_down_
    linkageType: ''
    returnType: struct event
    signature: struct event * min_heap_pop_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: min_heap_elt_is_top_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int min_heap_elt_is_top_(const struct event *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:107,1
    - Dst: min_heap_shift_up_unconditional_
      Src: /src/libevent/minheap-internal.h:108,1
    - Dst: min_heap_shift_down_
      Src: /src/libevent/minheap-internal.h:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - min_heap_t*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: min_heap_erase_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_shift_up_unconditional_
    - min_heap_shift_down_
    - min_heap_elem_greater
    linkageType: ''
    returnType: int
    signature: int min_heap_erase_(min_heap_t* s, struct event* e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_push_
      Src: /src/libevent/minheap-internal.h:120,1
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:125,1
    - Dst: min_heap_shift_up_unconditional_
      Src: /src/libevent/minheap-internal.h:126,1
    - Dst: min_heap_shift_down_
      Src: /src/libevent/minheap-internal.h:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - min_heap_t*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: min_heap_adjust_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_push_
    - min_heap_shift_up_unconditional_
    - min_heap_shift_down_
    - min_heap_elem_greater
    linkageType: ''
    returnType: int
    signature: int min_heap_adjust_(min_heap_t *s, struct event *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/minheap-internal.h:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - min_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: min_heap_reserve_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 1
    functionsReached:
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int min_heap_reserve_(min_heap_t* s, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - hole_index
    - e
    argTypes:
    - min_heap_t*
    - size_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: min_heap_shift_up_unconditional_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 2
    functionsReached:
    - min_heap_elem_greater
    linkageType: ''
    returnType: void
    signature: void min_heap_shift_up_unconditional_(min_heap_t* s, size_t hole_index,
      struct event* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - hole_index
    - e
    argTypes:
    - min_heap_t*
    - size_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: min_heap_shift_up_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 1
    functionsReached:
    - min_heap_elem_greater
    linkageType: ''
    returnType: void
    signature: void min_heap_shift_up_(min_heap_t* s, size_t hole_index, struct event*
      e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:178,1
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - s
    - hole_index
    - e
    argTypes:
    - min_heap_t*
    - size_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 186
    functionName: min_heap_shift_down_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 3
    functionsReached:
    - min_heap_elem_greater
    linkageType: ''
    returnType: void
    signature: void min_heap_shift_down_(min_heap_t* s, size_t hole_index, struct
      event* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: XFREE
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XFREE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: FD_SET_ALLOC_SIZE
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FD_SET_ALLOC_SIZE(n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/win32select.c:108,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/win32select.c:110,1
    - Dst: FD_SET_ALLOC_SIZE
      Src: /src/libevent/win32select.c:112,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:113,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - op
    - new_num_fds
    argTypes:
    - struct win32op*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 120
    functionName: grow_fd_sets
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - FD_SET_ALLOC_SIZE
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int grow_fd_sets(struct win32op *op, unsigned new_num_fds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grow_fd_sets
      Src: /src/libevent/win32select.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - op
    - ent
    - s
    - read
    argTypes:
    - struct win32op*
    - struct idx_info*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 145
    functionName: do_fd_set
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - grow_fd_sets
    linkageType: ''
    returnType: int
    signature: int do_fd_set(struct win32op *op, struct idx_info *ent, evutil_socket_t
      s, int read)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_get_fdinfo_
      Src: /src/libevent/win32select.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - base
    - op
    - ent
    - read
    argTypes:
    - struct event_base*
    - struct win32op*
    - struct idx_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: do_fd_clear
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - evmap_io_get_fdinfo_
    linkageType: ''
    returnType: int
    signature: "int do_fd_clear(struct event_base *base,\n\t\t\tstruct win32op *op,
      struct idx_info *ent, int read)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/win32select.c:185,1
    - Dst: FD_SET_ALLOC_SIZE
      Src: /src/libevent/win32select.c:188,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:189,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:191,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:193,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:195,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:197,1
    - Dst: evsig_init_
      Src: /src/libevent/win32select.c:203,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/win32select.c:206,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:210,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:211,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:212,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:213,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:214,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:215,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 217
    functionName: win32_init
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - evutil_weakrand_seed_
    - mm_calloc
    - FD_SET_ALLOC_SIZE
    - evsig_init_
    - XFREE
    linkageType: ''
    returnType: void
    signature: 'void *

      win32_init(struct event_base *base)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/win32select.c:232,1
    - Dst: do_fd_set
      Src: /src/libevent/win32select.c:234,1
    - Dst: do_fd_set
      Src: /src/libevent/win32select.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: win32_add
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - do_fd_set
    - event_debug
    linkageType: ''
    returnType: int
    signature: "int win32_add(struct event_base *base, evutil_socket_t fd,\n\t\t\t
      short old, short events, void *idx_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/win32select.c:251,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/win32select.c:252,1
    - Dst: do_fd_clear
      Src: /src/libevent/win32select.c:254,1
    - Dst: do_fd_clear
      Src: /src/libevent/win32select.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: win32_del
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - EV_SOCK_ARG
    - do_fd_clear
    - event_debug
    linkageType: ''
    returnType: int
    signature: "int win32_del(struct event_base *base, evutil_socket_t fd, short old,
      short events,\n\t\t  void *idx_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/win32select.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct win_fd_set*
    - struct win_fd_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: fd_set_copy
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fd_set_copy(struct win_fd_set *out, const struct win_fd_set *in)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FD_SET_ALLOC_SIZE
      Src: /src/libevent/win32select.c:289,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:290,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:292,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:294,1
    - Dst: fd_set_copy
      Src: /src/libevent/win32select.c:299,1
    - Dst: fd_set_copy
      Src: /src/libevent/win32select.c:300,1
    - Dst: fd_set_copy
      Src: /src/libevent/win32select.c:301,1
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/win32select.c:308,1
    - Dst: Sleep
      Src: /src/libevent/win32select.c:313,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/win32select.c:317,1
    - Dst: select
      Src: /src/libevent/win32select.c:319,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/win32select.c:324,1
    - Dst: event_debug
      Src: /src/libevent/win32select.c:326,1
    - Dst: event_debug
      Src: /src/libevent/win32select.c:329,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/win32select.c:330,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/win32select.c:330,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/win32select.c:335,1
    - Dst: evmap_io_active_
      Src: /src/libevent/win32select.c:341,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/win32select.c:345,1
    - Dst: evmap_io_active_
      Src: /src/libevent/win32select.c:351,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/win32select.c:355,1
    - Dst: evmap_io_active_
      Src: /src/libevent/win32select.c:361,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 365
    functionName: win32_dispatch
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - EVUTIL_SOCKET_ERROR
    - Sleep
    - mm_realloc
    - EVBASE_ACQUIRE_LOCK
    - evutil_socket_error_to_string
    - FD_SET_ALLOC_SIZE
    - select
    - evutil_tv_to_msec_
    - evmap_io_active_
    - EVBASE_RELEASE_LOCK
    - evutil_weakrand_range_
    - event_debug
    - fd_set_copy
    linkageType: ''
    returnType: int
    signature: int win32_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/win32select.c:372,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:374,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:376,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:378,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:380,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:382,1
    - Dst: memset
      Src: /src/libevent/win32select.c:385,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 387
    functionName: win32_dealloc
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - evsig_dealloc_
    - memset
    - mm_free
    linkageType: ''
    returnType: void
    signature: void win32_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: EVTHREAD_GET_ID
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_GET_ID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: EVBASE_IN_THREAD
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_IN_THREAD(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: EVBASE_NEED_NOTIFY
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_NEED_NOTIFY(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: EVTHREAD_ALLOC_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: EVTHREAD_FREE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: EVLOCK_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: EVLOCK_UNLOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar1
    - ','
    - lockvar2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: EVLOCK_SORTLOCKS_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_SORTLOCKS_(lockvar1, lockvar2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: EVBASE_ACQUIRE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_ACQUIRE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: EVBASE_RELEASE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_RELEASE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: EVLOCK_ASSERT_LOCKED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_ASSERT_LOCKED(lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libevent/evthread-internal.h:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: EVLOCK_TRY_LOCK_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: int
    signature: int EVLOCK_TRY_LOCK_(void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: EVTHREAD_ALLOC_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_COND(condvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: EVTHREAD_FREE_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_COND(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: EVTHREAD_COND_SIGNAL
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: EVTHREAD_COND_BROADCAST
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_BROADCAST(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: EVTHREAD_COND_WAIT
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT(cond, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - lock
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: EVTHREAD_COND_WAIT_TIMED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT_TIMED(cond, lock, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: EVTHREAD_LOCKING_ENABLED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_LOCKING_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: EVTHREAD_GET_ID
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_GET_ID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: EVBASE_IN_THREAD
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_IN_THREAD(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: EVBASE_NEED_NOTIFY
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_NEED_NOTIFY(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: EVTHREAD_ALLOC_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: EVTHREAD_FREE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: EVLOCK_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: EVLOCK_UNLOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: EVBASE_ACQUIRE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_ACQUIRE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: EVBASE_RELEASE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_RELEASE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: EVLOCK_ASSERT_LOCKED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_ASSERT_LOCKED(lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthreadimpl_lock_lock_
      Src: /src/libevent/evthread-internal.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: EVLOCK_TRY_LOCK_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached:
    - evthreadimpl_lock_lock_
    linkageType: ''
    returnType: int
    signature: int EVLOCK_TRY_LOCK_(void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: EVTHREAD_ALLOC_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_COND(condvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: EVTHREAD_FREE_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_COND(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: EVTHREAD_COND_SIGNAL
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: EVTHREAD_COND_BROADCAST
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_BROADCAST(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: EVTHREAD_COND_WAIT
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT(cond, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - lock
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: EVTHREAD_COND_WAIT_TIMED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT_TIMED(cond, lock, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: EVTHREAD_LOCKING_ENABLED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_LOCKING_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: EVTHREAD_GET_ID
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_GET_ID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: EVTHREAD_ALLOC_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: EVTHREAD_FREE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: EVLOCK_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK(lockvar, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: EVLOCK_UNLOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK(lockvar, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: EVLOCK_LOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: EVLOCK_UNLOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: EVBASE_IN_THREAD
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_IN_THREAD(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: EVBASE_NEED_NOTIFY
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_NEED_NOTIFY(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: EVBASE_ACQUIRE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_ACQUIRE_LOCK(base, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: EVBASE_RELEASE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_RELEASE_LOCK(base, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: EVLOCK_ASSERT_LOCKED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_ASSERT_LOCKED(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: EVLOCK_TRY_LOCK_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_TRY_LOCK_(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: EVTHREAD_ALLOC_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_COND(condvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: EVTHREAD_FREE_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_COND(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: EVTHREAD_COND_SIGNAL
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: EVTHREAD_COND_BROADCAST
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_BROADCAST(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: EVTHREAD_COND_WAIT
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT(cond, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - lock
    - ','
    - howlong
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: EVTHREAD_COND_WAIT_TIMED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT_TIMED(cond, lock, howlong)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: EVTHREAD_LOCKING_ENABLED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_LOCKING_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar1
    - ','
    - lockvar2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: EVLOCK_SORTLOCKS_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_SORTLOCKS_(lockvar1, lockvar2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: EVLOCK_LOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: EVLOCK_UNLOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: EVTHREAD_SETUP_GLOBAL_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_SETUP_GLOBAL_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_pair.c:59,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_pair.c:60,1
    - Dst: BEV_IS_PAIR
      Src: /src/libevent/bufferevent_pair.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: upcast
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - EVUTIL_ASSERT
    - BEV_IS_PAIR
    linkageType: ''
    returnType: struct bufferevent_pair
    signature: 'struct bufferevent_pair *

      upcast(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev_pair
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: downcast
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: downcast(bev_pair)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_pair.c:70,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:71,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_pair.c:73,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: incref_and_lock
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - upcast
    - downcast
    linkageType: ''
    returnType: void
    signature: void incref_and_lock(struct bufferevent *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:79,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_pair.c:81,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:81,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_pair.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: decref_and_unlock
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 4
    functionsReached:
    - upcast
    - bufferevent_decref_and_unlock_
    - downcast
    linkageType: ''
    returnType: void
    signature: void decref_and_unlock(struct bufferevent *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_pair.c:95,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_pair.c:97,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_pair.c:99,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_pair.c:102,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_pair.c:103,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:103,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_pair.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - base
    - options
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: bufferevent_pair_elt_new
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - bufferevent_init_generic_timeout_cbs_
    - bufferevent_free
    - mm_calloc
    - bufferevent_init_common_
    - mm_free
    - evbuffer_add_cb
    - downcast
    linkageType: ''
    returnType: struct bufferevent_pair
    signature: "struct bufferevent_pair *\nbufferevent_pair_elt_new(struct event_base
      *base,\n    int options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_pair_elt_new
      Src: /src/libevent/bufferevent_pair.c:122,1
    - Dst: bufferevent_pair_elt_new
      Src: /src/libevent/bufferevent_pair.c:125,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_pair.c:127,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:127,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent_pair.c:133,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:133,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:139,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:139,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:140,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:140,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:141,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:141,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:142,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:142,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:144,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - base
    - options
    - pair
    argTypes:
    - struct event_base*
    - int
    - struct bufferevent*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 148
    functionName: bufferevent_pair_new
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - evbuffer_freeze
    - bufferevent_enable_locking_
    - bufferevent_pair_elt_new
    - bufferevent_free
    - downcast
    linkageType: ''
    returnType: int
    signature: "int bufferevent_pair_new(struct event_base *base, int options,\n    struct
      bufferevent *pair[2])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_pair.c:157,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_pair.c:158,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:161,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/bufferevent_pair.c:164,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:168,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent_pair.c:169,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:172,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent_pair.c:173,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:177,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:179,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:180,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:182,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_pair.c:185,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_pair.c:186,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:188,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - src
    - dst
    - ignore_wm
    argTypes:
    - struct bufferevent*
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 190
    functionName: be_pair_transfer
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - evbuffer_freeze
    - evbuffer_add_buffer
    - bufferevent_trigger_nolock_
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - evbuffer_remove_buffer
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - evbuffer_get_length
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - evbuffer_unfreeze
    linkageType: ''
    returnType: void
    signature: "void be_pair_transfer(struct bufferevent *src, struct bufferevent
      *dst,\n    int ignore_wm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:196,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:197,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:199,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct bufferevent_pair*
    - struct bufferevent_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: be_pair_wants_to_talk
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    - downcast
    linkageType: ''
    returnType: int
    signature: "int be_pair_wants_to_talk(struct bufferevent_pair *src,\n    struct
      bufferevent_pair *dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:209,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:209,1
    - Dst: be_pair_wants_to_talk
      Src: /src/libevent/bufferevent_pair.c:214,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:215,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:215,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:215,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:219,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - outbuf
    - info
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: be_pair_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - decref_and_unlock
    - be_pair_transfer
    - incref_and_lock
    - downcast
    - be_pair_wants_to_talk
    linkageType: ''
    returnType: void
    signature: "void be_pair_outbuf_cb(struct evbuffer *outbuf,\n    const struct
      evbuffer_cb_info *info, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:225,1
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:228,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:231,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:233,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:234,1
    - Dst: be_pair_wants_to_talk
      Src: /src/libevent/bufferevent_pair.c:238,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:239,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:239,1
    - Dst: be_pair_wants_to_talk
      Src: /src/libevent/bufferevent_pair.c:243,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:244,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:244,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - bufev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: be_pair_enable
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - decref_and_unlock
    - upcast
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - be_pair_transfer
    - evbuffer_get_length
    - incref_and_lock
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - downcast
    - be_pair_wants_to_talk
    linkageType: ''
    returnType: int
    signature: int be_pair_enable(struct bufferevent *bufev, short events)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:254,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: be_pair_disable
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - BEV_DEL_GENERIC_READ_TIMEOUT
    linkageType: ''
    returnType: int
    signature: int be_pair_disable(struct bufferevent *bev, short events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: be_pair_unlink
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - upcast
    linkageType: ''
    returnType: void
    signature: void be_pair_unlink(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 300
    functionName: be_pair_destruct
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - upcast
    linkageType: ''
    returnType: void
    signature: void be_pair_destruct(struct bufferevent *bev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:306,1
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:315,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:317,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:320,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:323,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_pair.c:331,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - bev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 335
    functionName: be_pair_flush
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - decref_and_unlock
    - upcast
    - bufferevent_run_eventcb_
    - be_pair_transfer
    - incref_and_lock
    - downcast
    linkageType: ''
    returnType: int
    signature: "int be_pair_flush(struct bufferevent *bev, short iotype,\n    enum
      bufferevent_flush_mode mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_PAIR
      Src: /src/libevent/bufferevent_pair.c:342,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:344,1
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:345,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:347,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 350
    functionName: bufferevent_pair_get_partner
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - decref_and_unlock
    - upcast
    - BEV_IS_PAIR
    - incref_and_lock
    - downcast
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      bufferevent_pair_get_partner(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: PTR_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: INT_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: PTR_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: INT_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PTR_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: INT_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TO_UDATA(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/kqueue.c:123,1
    - Dst: kqueue
      Src: /src/libevent/kqueue.c:128,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:129,1
    - Dst: getpid
      Src: /src/libevent/kqueue.c:135,1
    - Dst: mm_calloc
      Src: /src/libevent/kqueue.c:138,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:144,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:153,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:157,1
    - Dst: kqop_free
      Src: /src/libevent/kqueue.c:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 169
    functionName: kq_init
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kqop_free
    - getpid
    - mm_calloc
    - kevent
    - event_warn
    - kqueue
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      kq_init(struct event_base *base)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/kqueue.c:176,1
    - Dst: INT_TO_UDATA
      Src: /src/libevent/kqueue.c:184,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - out
    - fd
    - filter
    - change
    argTypes:
    - struct kevent*
    - evutil_socket_t
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: kq_setup_kevent
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - memset
    - INT_TO_UDATA
    linkageType: ''
    returnType: void
    signature: void kq_setup_kevent(struct kevent *out, evutil_socket_t fd, int filter,
      short change)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_warnx
      Src: /src/libevent/kqueue.c:206,1
    - Dst: mm_realloc
      Src: /src/libevent/kqueue.c:211,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - kqop
    argTypes:
    - struct kqop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: kq_grow_events
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - event_warnx
    - mm_realloc
    - event_warn
    linkageType: ''
    returnType: int
    signature: int kq_grow_events(struct kqop *kqop)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kq_setup_kevent
      Src: /src/libevent/kqueue.c:233,1
    - Dst: kq_grow_events
      Src: /src/libevent/kqueue.c:235,1
    - Dst: kq_setup_kevent
      Src: /src/libevent/kqueue.c:241,1
    - Dst: kq_grow_events
      Src: /src/libevent/kqueue.c:243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - changelist
    - kqop
    argTypes:
    - struct event_changelist*
    - struct kqop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 249
    functionName: kq_build_changes_list
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kq_setup_kevent
    - kq_grow_events
    linkageType: ''
    returnType: int
    signature: "int kq_build_changes_list(const struct event_changelist *changelist,\n
      \   struct kqop *kqop)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:266,1
    - Dst: kq_build_changes_list
      Src: /src/libevent/kqueue.c:267,1
    - Dst: event_changelist_remove_all_
      Src: /src/libevent/kqueue.c:271,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/kqueue.c:279,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:280,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/kqueue.c:281,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:283,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:289,1
    - Dst: event_debug
      Src: /src/libevent/kqueue.c:296,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/kqueue.c:380,1
    - Dst: evmap_io_active_
      Src: /src/libevent/kqueue.c:382,1
    - Dst: kq_grow_events
      Src: /src/libevent/kqueue.c:389,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 394
    functionName: kq_dispatch
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kq_build_changes_list
    - kq_grow_events
    - event_changelist_remove_all_
    - kevent
    - EVBASE_ACQUIRE_LOCK
    - event_warn
    - EVUTIL_ASSERT
    - evmap_io_active_
    - EVBASE_RELEASE_LOCK
    - event_debug
    - evmap_signal_active_
    linkageType: ''
    returnType: int
    signature: int kq_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/kqueue.c:400,1
    - Dst: getpid
      Src: /src/libevent/kqueue.c:401,1
    - Dst: close
      Src: /src/libevent/kqueue.c:402,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:403,1
    - Dst: mm_free
      Src: /src/libevent/kqueue.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - kqop
    argTypes:
    - struct kqop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: kqop_free
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 1
    functionsReached:
    - getpid
    - memset
    - close
    - mm_free
    linkageType: ''
    returnType: void
    signature: void kqop_free(struct kqop *kqop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/kqueue.c:411,1
    - Dst: kqop_free
      Src: /src/libevent/kqueue.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: kq_dealloc
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kqop_free
    - evsig_dealloc_
    linkageType: ''
    returnType: void
    signature: void kq_dealloc(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:424,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:426,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:434,1
    - Dst: evsig_set_handler_
      Src: /src/libevent/kqueue.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - base
    - nsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 447
    functionName: kq_sig_add
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evsig_set_handler_
    - kevent
    - memset
    linkageType: ''
    returnType: int
    signature: int kq_sig_add(struct event_base *base, int nsignal, short old, short
      events, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:458,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:460,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:468,1
    - Dst: evsig_restore_handler_
      Src: /src/libevent/kqueue.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - base
    - nsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 475
    functionName: kq_sig_del
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evsig_restore_handler_
    - kevent
    - memset
    linkageType: ''
    returnType: int
    signature: int kq_sig_del(struct event_base *base, int nsignal, short old, short
      events, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/kqueue.c:502,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:507,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 518
    functionName: event_kq_add_notify_event_
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kevent
    - memset
    - event_warn
    linkageType: ''
    returnType: int
    signature: int event_kq_add_notify_event_(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/kqueue.c:532,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:537,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 546
    functionName: event_kq_notify_base_
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kevent
    - memset
    - event_warn
    linkageType: ''
    returnType: int
    signature: int event_kq_notify_base_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/buffer_iocp.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: upcast_evbuffer
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: struct evbuffer_overlapped
    signature: 'struct evbuffer_overlapped *

      upcast_evbuffer(struct evbuffer *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:90,1
    - Dst: evbuffer_chain_unpin_
      Src: /src/libevent/buffer_iocp.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - eo
    - flag
    argTypes:
    - struct evbuffer_overlapped*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: pin_release
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evbuffer_chain_unpin_
    linkageType: ''
    returnType: void
    signature: void pin_release(struct evbuffer_overlapped *eo, unsigned flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:100,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:105,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:106,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:107,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:109,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:116,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:126,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer_iocp.c:133,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer_iocp.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - evbuf
    - nBytes
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 136
    functionName: evbuffer_commit_read_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    - pin_release
    - EVUTIL_ASSERT
    - evbuffer_invoke_callbacks_
    - evbuffer_unfreeze
    - upcast_evbuffer
    linkageType: ''
    returnType: void
    signature: void evbuffer_commit_read_(struct evbuffer *evbuf, ev_ssize_t nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:141,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:143,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:144,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:145,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer_iocp.c:146,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:147,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer_iocp.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - evbuf
    - nBytes
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: evbuffer_commit_write_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    - pin_release
    - EVUTIL_ASSERT
    - evbuffer_drain
    - evbuffer_unfreeze
    - upcast_evbuffer
    linkageType: ''
    returnType: void
    signature: void evbuffer_commit_write_(struct evbuffer *evbuf, ev_ssize_t nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer_iocp.c:157,1
    - Dst: LIST_INIT
      Src: /src/libevent/buffer_iocp.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: evbuffer_overlapped_new_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - LIST_INIT
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      evbuffer_overlapped_new_(evutil_socket_t fd)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:175,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:186,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:187,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/buffer_iocp.c:197,1
    - Dst: memset
      Src: /src/libevent/buffer_iocp.c:201,1
    - Dst: evbuffer_chain_pin_
      Src: /src/libevent/buffer_iocp.c:208,1
    - Dst: evbuffer_incref_
      Src: /src/libevent/buffer_iocp.c:225,1
    - Dst: WSASend
      Src: /src/libevent/buffer_iocp.c:226,1
    - Dst: WSAGetLastError
      Src: /src/libevent/buffer_iocp.c:228,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:231,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:232,1
    - Dst: evbuffer_free
      Src: /src/libevent/buffer_iocp.c:233,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer_iocp.c:241,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - buf
    - at_most
    - ol
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 243
    functionName: evbuffer_launch_write_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - upcast_evbuffer
    - evbuffer_freeze
    - EVBUFFER_LOCK
    - WSAGetLastError
    - evbuffer_unfreeze
    - pin_release
    - EVUTIL_ASSERT
    - evbuffer_free
    - WSASend
    - evbuffer_incref_
    - EVBUFFER_UNLOCK
    - evbuffer_chain_pin_
    - memset
    linkageType: ''
    returnType: int
    signature: "int evbuffer_launch_write_(struct evbuffer *buf, ev_ssize_t at_most,\n\t\tstruct
      event_overlapped *ol)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:249,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:260,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:261,1
    - Dst: memset
      Src: /src/libevent/buffer_iocp.c:267,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer_iocp.c:269,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/buffer_iocp.c:271,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer_iocp.c:273,1
    - Dst: WSABUF_FROM_EVBUFFER_IOV
      Src: /src/libevent/buffer_iocp.c:276,1
    - Dst: evbuffer_chain_pin_
      Src: /src/libevent/buffer_iocp.c:286,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:289,1
    - Dst: evbuffer_incref_
      Src: /src/libevent/buffer_iocp.c:291,1
    - Dst: WSARecv
      Src: /src/libevent/buffer_iocp.c:292,1
    - Dst: WSAGetLastError
      Src: /src/libevent/buffer_iocp.c:294,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:297,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:298,1
    - Dst: evbuffer_free
      Src: /src/libevent/buffer_iocp.c:299,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer_iocp.c:307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - buf
    - at_most
    - ol
    argTypes:
    - struct evbuffer*
    - size_t
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 309
    functionName: evbuffer_launch_read_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - upcast_evbuffer
    - evbuffer_freeze
    - evbuffer_expand_fast_
    - EVBUFFER_LOCK
    - WSAGetLastError
    - WSABUF_FROM_EVBUFFER_IOV
    - pin_release
    - EVUTIL_ASSERT
    - evbuffer_read_setup_vecs_
    - evbuffer_unfreeze
    - evbuffer_free
    - evbuffer_incref_
    - EVBUFFER_UNLOCK
    - evbuffer_chain_pin_
    - memset
    - WSARecv
    linkageType: ''
    returnType: int
    signature: "int evbuffer_launch_read_(struct evbuffer *buf, size_t at_most,\n\t\tstruct
      event_overlapped *ol)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: evbuffer_overlapped_get_fd_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - upcast_evbuffer
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evbuffer_overlapped_get_fd_(struct evbuffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:321,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:322,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer_iocp.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - fd
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: evbuffer_overlapped_set_fd_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - upcast_evbuffer
    linkageType: ''
    returnType: void
    signature: void evbuffer_overlapped_set_fd_(struct evbuffer *buf, evutil_socket_t
      fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: NT_SUCCESS
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NT_SUCCESS(status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: RTL_CONSTANT_STRING
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTL_CONSTANT_STRING(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ObjectName
    - ','
    - Attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: RTL_CONSTANT_OBJECT_ATTRIBUTES
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTL_CONSTANT_OBJECT_ATTRIBUTES(ObjectName, Attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 269
    functionName: NT_NTDLL_IMPORT_LIST
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NT_NTDLL_IMPORT_LIST(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - return_type
    - ','
    - attributes
    - ','
    - name
    - ','
    - parameters
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(return_type, attributes, name, parameters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: return_map_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_map_error(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - error
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: return_set_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_set_error(value, error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NtCreateFile
      Src: /src/libevent/wepoll.c:339,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:351,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:351,1
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/wepoll.c:353,1
    - Dst: SetFileCompletionNotificationModes
      Src: /src/libevent/wepoll.c:356,1
    - Dst: CloseHandle
      Src: /src/libevent/wepoll.c:364,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - iocp_handle
    - afd_helper_handle_out
    argTypes:
    - HANDLE
    - HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 366
    functionName: afd_create_helper_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - RtlNtStatusToDosError
    - CloseHandle
    - NtCreateFile
    - return_set_error
    - CreateIoCompletionPort
    - SetFileCompletionNotificationModes
    - return_map_error
    linkageType: ''
    returnType: int
    signature: "int afd_create_helper_handle(HANDLE iocp_handle,\n                             HANDLE*
      afd_helper_handle_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:374,1
    - Dst: NtDeviceIoControlFile
      Src: /src/libevent/wepoll.c:377,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:391,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:393,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - afd_helper_handle
    - poll_info
    - io_status_block
    argTypes:
    - HANDLE
    - AFD_POLL_INFO*
    - IO_STATUS_BLOCK*
    assertStmts:
    - condition: (io_status_block != NULL)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 394
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 394
    functionName: afd_poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - assert
    - RtlNtStatusToDosError
    - NtDeviceIoControlFile
    linkageType: ''
    returnType: int
    signature: "int afd_poll(HANDLE afd_helper_handle,\n             AFD_POLL_INFO*
      poll_info,\n             IO_STATUS_BLOCK* io_status_block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NtCancelIoFileEx
      Src: /src/libevent/wepoll.c:407,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:414,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - afd_helper_handle
    - io_status_block
    argTypes:
    - HANDLE
    - IO_STATUS_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 415
    functionName: afd_cancel_poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - RtlNtStatusToDosError
    - NtCancelIoFileEx
    linkageType: ''
    returnType: int
    signature: "int afd_cancel_poll(HANDLE afd_helper_handle,\n                    IO_STATUS_BLOCK*
      io_status_block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_tree_init
      Src: /src/libevent/wepoll.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: epoll_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - ts_tree_init
    linkageType: ''
    returnType: int
    signature: int epoll_global_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libevent/wepoll.c:562,1
    - Dst: port_new
      Src: /src/libevent/wepoll.c:565,1
    - Dst: port_state_to_handle_tree_node
      Src: /src/libevent/wepoll.c:569,1
    - Dst: ts_tree_add
      Src: /src/libevent/wepoll.c:570,1
    - Dst: port_delete
      Src: /src/libevent/wepoll.c:572,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 577
    functionName: epoll__create
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - ts_tree_add
    - port_new
    - init
    - port_state_to_handle_tree_node
    - return_set_error
    - port_delete
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE epoll__create(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:581,1
    - Dst: epoll__create
      Src: /src/libevent/wepoll.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: epoll_create
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - epoll__create
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE epoll_create(int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:588,1
    - Dst: epoll__create
      Src: /src/libevent/wepoll.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: epoll_create1
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - epoll__create
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE epoll_create1(int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libevent/wepoll.c:597,1
    - Dst: ts_tree_del_and_ref
      Src: /src/libevent/wepoll.c:600,1
    - Dst: err_set_win_error
      Src: /src/libevent/wepoll.c:602,1
    - Dst: port_state_from_handle_tree_node
      Src: /src/libevent/wepoll.c:606,1
    - Dst: port_close
      Src: /src/libevent/wepoll.c:607,1
    - Dst: ts_tree_node_unref_and_destroy
      Src: /src/libevent/wepoll.c:609,1
    - Dst: port_delete
      Src: /src/libevent/wepoll.c:611,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ephnd
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 616
    functionName: epoll_close
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - init
    - port_state_from_handle_tree_node
    - port_close
    - ts_tree_node_unref_and_destroy
    - err_set_win_error
    - port_delete
    - err_check_handle
    - ts_tree_del_and_ref
    linkageType: ''
    returnType: int
    signature: int epoll_close(HANDLE ephnd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libevent/wepoll.c:623,1
    - Dst: ts_tree_find_and_ref
      Src: /src/libevent/wepoll.c:626,1
    - Dst: err_set_win_error
      Src: /src/libevent/wepoll.c:628,1
    - Dst: port_state_from_handle_tree_node
      Src: /src/libevent/wepoll.c:632,1
    - Dst: port_ctl
      Src: /src/libevent/wepoll.c:633,1
    - Dst: ts_tree_node_unref
      Src: /src/libevent/wepoll.c:635,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:645,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:646,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - ephnd
    - op
    - sock
    - ev
    argTypes:
    - HANDLE
    - int
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 648
    functionName: epoll_ctl
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - init
    - port_state_from_handle_tree_node
    - port_ctl
    - ts_tree_node_unref
    - ts_tree_find_and_ref
    - err_set_win_error
    - err_check_handle
    linkageType: ''
    returnType: int
    signature: int epoll_ctl(HANDLE ephnd, int op, SOCKET sock, struct epoll_event*
      ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:659,1
    - Dst: init
      Src: /src/libevent/wepoll.c:661,1
    - Dst: ts_tree_find_and_ref
      Src: /src/libevent/wepoll.c:664,1
    - Dst: err_set_win_error
      Src: /src/libevent/wepoll.c:666,1
    - Dst: port_state_from_handle_tree_node
      Src: /src/libevent/wepoll.c:670,1
    - Dst: port_wait
      Src: /src/libevent/wepoll.c:671,1
    - Dst: ts_tree_node_unref
      Src: /src/libevent/wepoll.c:673,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - ephnd
    - events
    - maxevents
    - timeout
    argTypes:
    - HANDLE
    - struct epoll_event*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 683
    functionName: epoll_wait
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - init
    - port_state_from_handle_tree_node
    - ts_tree_node_unref
    - port_wait
    - ts_tree_find_and_ref
    - return_set_error
    - err_set_win_error
    - err_check_handle
    linkageType: ''
    returnType: int
    signature: "int epoll_wait(HANDLE ephnd,\n               struct epoll_event* events,\n
      \              int maxevents,\n               int timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 789
    functionName: ERR__ERRNO_MAPPINGS
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR__ERRNO_MAPPINGS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR__ERRNO_MAPPINGS
      Src: /src/libevent/wepoll.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - error
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: err__map_win_error_to_errno
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - ERR__ERRNO_MAPPINGS
    linkageType: ''
    returnType: errno_t
    signature: errno_t err__map_win_error_to_errno(DWORD error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - error_sym
    - ','
    - errno_sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 795
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(error_sym, errno_sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: err__map_win_error_to_errno
      Src: /src/libevent/wepoll.c:802,1
    - Dst: GetLastError
      Src: /src/libevent/wepoll.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 803
    functionName: err_map_win_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - err__map_win_error_to_errno
    linkageType: ''
    returnType: void
    signature: void err_map_win_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetLastError
      Src: /src/libevent/wepoll.c:806,1
    - Dst: err__map_win_error_to_errno
      Src: /src/libevent/wepoll.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: err_set_win_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - SetLastError
    - err__map_win_error_to_errno
    linkageType: ''
    returnType: void
    signature: void err_set_win_error(DWORD error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:816,1
    - Dst: GetHandleInformation
      Src: /src/libevent/wepoll.c:818,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 822
    functionName: err_check_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - GetHandleInformation
    - return_set_error
    - return_map_error
    linkageType: ''
    returnType: int
    signature: int err_check_handle(HANDLE handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 827
    functionName: array_count
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_count(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: container_of
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 832
    functionName: unused_var
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unused_var(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:847,1
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:848,1
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:849,1
    - Dst: ws_global_init
      Src: /src/libevent/wepoll.c:852,1
    - Dst: nt_global_init
      Src: /src/libevent/wepoll.c:852,1
    - Dst: reflock_global_init
      Src: /src/libevent/wepoll.c:853,1
    - Dst: epoll_global_init
      Src: /src/libevent/wepoll.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - once
    - parameter
    - context
    argTypes:
    - INIT_ONCE*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 858
    functionName: init__once_callback
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - reflock_global_init
    - epoll_global_init
    - nt_global_init
    - ws_global_init
    - unused_var
    linkageType: ''
    returnType: BOOL
    signature: "BOOL init__once_callback(INIT_ONCE* once,\n                                         void*
      parameter,\n                                         void** context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InitOnceExecuteOnce
      Src: /src/libevent/wepoll.c:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 42
    functionsReached:
    - InitOnceExecuteOnce
    linkageType: ''
    returnType: int
    signature: int init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - return_type
    - ','
    - attributes
    - ','
    - name
    - ','
    - parameters
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 886
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(return_type, attributes, name, parameters)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/libevent/wepoll.c:893,1
    - Dst: NT_NTDLL_IMPORT_LIST
      Src: /src/libevent/wepoll.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 906
    functionName: nt_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - NT_NTDLL_IMPORT_LIST
    - GetModuleHandleW
    linkageType: ''
    returnType: int
    signature: int nt_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - return_type
    - ','
    - attributes
    - ','
    - name
    - ','
    - parameters
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 902
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(return_type, attributes, name, parameters)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_get_iocp_handle
      Src: /src/libevent/wepoll.c:958,1
    - Dst: port_get_poll_group_queue
      Src: /src/libevent/wepoll.c:959,1
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:961,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:963,1
    - Dst: memset
      Src: /src/libevent/wepoll.c:965,1
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:967,1
    - Dst: afd_create_helper_handle
      Src: /src/libevent/wepoll.c:970,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:972,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 979
    functionName: poll_group__new
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - queue_node_init
    - queue_append
    - return_set_error
    - port_get_poll_group_queue
    - afd_create_helper_handle
    - mm_free
    - memset
    - port_get_iocp_handle
    linkageType: ''
    returnType: poll_group_t
    signature: poll_group_t * poll_group__new(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:982,1
    - Dst: CloseHandle
      Src: /src/libevent/wepoll.c:983,1
    - Dst: queue_remove
      Src: /src/libevent/wepoll.c:984,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poll_group
    argTypes:
    - poll_group_t*
    assertStmts:
    - condition: (poll_group->group_size == 0)
      pos:
        line_end: 981
        line_start: 981
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 986
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 986
    functionName: poll_group_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - queue_remove
    - assert
    - mm_free
    linkageType: ''
    returnType: void
    signature: void poll_group_delete(poll_group_t* poll_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue_node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 990
    functionName: poll_group_from_queue_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: poll_group_t
    signature: poll_group_t * poll_group_from_queue_node(queue_node_t* queue_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poll_group
    argTypes:
    - poll_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 994
    functionName: poll_group_get_afd_helper_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE poll_group_get_afd_helper_handle(poll_group_t* poll_group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: port_get_poll_group_queue
      Src: /src/libevent/wepoll.c:997,1
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:999,1
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1000,1
    - Dst: queue_last
      Src: /src/libevent/wepoll.c:1001,1
    - Dst: poll_group__new
      Src: /src/libevent/wepoll.c:1006,1
    - Dst: queue_move_first
      Src: /src/libevent/wepoll.c:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1014
    functionName: poll_group_acquire
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_empty
    - poll_group__new
    - container_of
    - queue_move_first
    - port_get_poll_group_queue
    - queue_last
    linkageType: ''
    returnType: poll_group_t
    signature: poll_group_t * poll_group_acquire(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port_get_poll_group_queue
      Src: /src/libevent/wepoll.c:1018,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1021,1
    - Dst: queue_move_last
      Src: /src/libevent/wepoll.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poll_group
    argTypes:
    - poll_group_t*
    assertStmts:
    - condition: (poll_group->group_size < POLL_GROUP__MAX_GROUP_SIZE)
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1026
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1026
    functionName: poll_group_release
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_move_last
    - port_get_poll_group_queue
    - assert
    linkageType: ''
    returnType: void
    signature: void poll_group_release(poll_group_t* poll_group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:1067,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1072
    functionName: port__alloc
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - mm_malloc
    linkageType: ''
    returnType: port_state_t
    signature: port_state_t * port__alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1075,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - port_state_t*
    assertStmts:
    - condition: (port != NULL)
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: port__free
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - mm_free
    linkageType: ''
    returnType: void
    signature: void port__free(port_state_t* port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/wepoll.c:1081,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1086
    functionName: port__create_iocp
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - CreateIoCompletionPort
    - return_map_error
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE port__create_iocp(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port__alloc
      Src: /src/libevent/wepoll.c:1092,1
    - Dst: port__create_iocp
      Src: /src/libevent/wepoll.c:1096,1
    - Dst: memset
      Src: /src/libevent/wepoll.c:1100,1
    - Dst: tree_init
      Src: /src/libevent/wepoll.c:1103,1
    - Dst: queue_init
      Src: /src/libevent/wepoll.c:1104,1
    - Dst: queue_init
      Src: /src/libevent/wepoll.c:1105,1
    - Dst: queue_init
      Src: /src/libevent/wepoll.c:1106,1
    - Dst: ts_tree_node_init
      Src: /src/libevent/wepoll.c:1107,1
    - Dst: InitializeCriticalSection
      Src: /src/libevent/wepoll.c:1108,1
    - Dst: port__free
      Src: /src/libevent/wepoll.c:1114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - iocp_handle_out
    argTypes:
    - HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1117
    functionName: port_new
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_init
    - port__create_iocp
    - port__alloc
    - port__free
    - ts_tree_node_init
    - tree_init
    - InitializeCriticalSection
    - memset
    linkageType: ''
    returnType: port_state_t
    signature: port_state_t * port_new(HANDLE* iocp_handle_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/libevent/wepoll.c:1123,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1127
    functionName: port__close_iocp
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - return_map_error
    linkageType: ''
    returnType: int
    signature: int port__close_iocp(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1132,1
    - Dst: port__close_iocp
      Src: /src/libevent/wepoll.c:1133,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1137
    functionName: port_close
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - LeaveCriticalSection
    - port__close_iocp
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: int port_close(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1144,1
    - Dst: tree_root
      Src: /src/libevent/wepoll.c:1146,1
    - Dst: sock_state_from_tree_node
      Src: /src/libevent/wepoll.c:1147,1
    - Dst: sock_force_delete
      Src: /src/libevent/wepoll.c:1148,1
    - Dst: queue_first
      Src: /src/libevent/wepoll.c:1151,1
    - Dst: sock_state_from_queue_node
      Src: /src/libevent/wepoll.c:1152,1
    - Dst: sock_force_delete
      Src: /src/libevent/wepoll.c:1153,1
    - Dst: queue_first
      Src: /src/libevent/wepoll.c:1156,1
    - Dst: poll_group_from_queue_node
      Src: /src/libevent/wepoll.c:1157,1
    - Dst: poll_group_delete
      Src: /src/libevent/wepoll.c:1158,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1161,1
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1161,1
    - Dst: DeleteCriticalSection
      Src: /src/libevent/wepoll.c:1163,1
    - Dst: port__free
      Src: /src/libevent/wepoll.c:1165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts:
    - condition: (port_state->iocp_handle == NULL)
      pos:
        line_end: 1143
        line_start: 1143
        source_file: /src/libevent/wepoll.c
    - condition: (queue_empty(&port_state->sock_update_queue))
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1168
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1168
    functionName: port_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - queue_empty
    - DeleteCriticalSection
    - tree_root
    - sock_state_from_tree_node
    - sock_state_from_queue_node
    - port__free
    - assert
    - queue_first
    - poll_group_delete
    - sock_force_delete
    - poll_group_from_queue_node
    linkageType: ''
    returnType: int
    signature: int port_delete(port_state_t* port_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1175,1
    - Dst: queue_first
      Src: /src/libevent/wepoll.c:1176,1
    - Dst: sock_state_from_queue_node
      Src: /src/libevent/wepoll.c:1177,1
    - Dst: sock_update
      Src: /src/libevent/wepoll.c:1179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1186
    functionName: port__update_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_empty
    - sock_update
    - sock_state_from_queue_node
    - queue_first
    linkageType: ''
    returnType: int
    signature: int port__update_events(port_state_t* port_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port__update_events
      Src: /src/libevent/wepoll.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1188
    functionDepth: 2
    functionLinenumber: 1188
    functionLinenumberEnd: 1191
    functionName: port__update_events_if_polling
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port__update_events
    linkageType: ''
    returnType: void
    signature: void port__update_events_if_polling(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock_feed_event
      Src: /src/libevent/wepoll.c:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - port_state
    - epoll_events
    - iocp_events
    - iocp_event_count
    argTypes:
    - port_state_t*
    - struct epoll_event*
    - OVERLAPPED_ENTRY*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1209
    functionName: port__feed_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_feed_event
    linkageType: ''
    returnType: int
    signature: "int port__feed_events(port_state_t* port_state,\n                             struct
      epoll_event* epoll_events,\n                             OVERLAPPED_ENTRY* iocp_events,\n
      \                            DWORD iocp_event_count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port__update_events
      Src: /src/libevent/wepoll.c:1218,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1223,1
    - Dst: GetQueuedCompletionStatusEx
      Src: /src/libevent/wepoll.c:1225,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1232,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1237,1
    - Dst: port__feed_events
      Src: /src/libevent/wepoll.c:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - port_state
    - epoll_events
    - iocp_events
    - maxevents
    - timeout
    argTypes:
    - port_state_t*
    - struct epoll_event*
    - OVERLAPPED_ENTRY*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1241
    functionName: port__poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port__update_events
    - LeaveCriticalSection
    - port__feed_events
    - EnterCriticalSection
    - return_map_error
    - GetQueuedCompletionStatusEx
    linkageType: ''
    returnType: int
    signature: "int port__poll(port_state_t* port_state,\n                      struct
      epoll_event* epoll_events,\n                      OVERLAPPED_ENTRY* iocp_events,\n
      \                     DWORD maxevents,\n                      DWORD timeout)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1255,1
    - Dst: array_count
      Src: /src/libevent/wepoll.c:1259,1
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:1262,1
    - Dst: array_count
      Src: /src/libevent/wepoll.c:1264,1
    - Dst: GetTickCount64
      Src: /src/libevent/wepoll.c:1270,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1278,1
    - Dst: port__poll
      Src: /src/libevent/wepoll.c:1285,1
    - Dst: GetTickCount64
      Src: /src/libevent/wepoll.c:1294,1
    - Dst: SetLastError
      Src: /src/libevent/wepoll.c:1298,1
    - Dst: port__update_events_if_polling
      Src: /src/libevent/wepoll.c:1306,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1308,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:1311,1
    - Dst: GetLastError
      Src: /src/libevent/wepoll.c:1315,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - port_state
    - events
    - maxevents
    - timeout
    argTypes:
    - port_state_t*
    - struct epoll_event*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1319
    functionName: port_wait
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - mm_malloc
    - SetLastError
    - LeaveCriticalSection
    - GetLastError
    - EnterCriticalSection
    - return_set_error
    - GetTickCount64
    - mm_free
    - port__poll
    - port__update_events_if_polling
    - array_count
    linkageType: ''
    returnType: int
    signature: "int port_wait(port_state_t* port_state,\n              struct epoll_event*
      events,\n              int maxevents,\n              int timeout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sock_new
      Src: /src/libevent/wepoll.c:1324,1
    - Dst: sock_set_event
      Src: /src/libevent/wepoll.c:1328,1
    - Dst: sock_delete
      Src: /src/libevent/wepoll.c:1329,1
    - Dst: port__update_events_if_polling
      Src: /src/libevent/wepoll.c:1333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - port_state
    - sock
    - ev
    argTypes:
    - port_state_t*
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1321
    functionDepth: 3
    functionLinenumber: 1321
    functionLinenumberEnd: 1336
    functionName: port__ctl_add
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_set_event
    - sock_delete
    - sock_new
    - port__update_events_if_polling
    linkageType: ''
    returnType: int
    signature: "int port__ctl_add(port_state_t* port_state,\n                         SOCKET
      sock,\n                         struct epoll_event* ev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_find_socket
      Src: /src/libevent/wepoll.c:1341,1
    - Dst: sock_set_event
      Src: /src/libevent/wepoll.c:1345,1
    - Dst: port__update_events_if_polling
      Src: /src/libevent/wepoll.c:1348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - port_state
    - sock
    - ev
    argTypes:
    - port_state_t*
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1351
    functionName: port__ctl_mod
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_set_event
    - port_find_socket
    - port__update_events_if_polling
    linkageType: ''
    returnType: int
    signature: "int port__ctl_mod(port_state_t* port_state,\n                         SOCKET
      sock,\n                         struct epoll_event* ev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_find_socket
      Src: /src/libevent/wepoll.c:1354,1
    - Dst: sock_delete
      Src: /src/libevent/wepoll.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port_state
    - sock
    argTypes:
    - port_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1361
    functionName: port__ctl_del
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_delete
    - port_find_socket
    linkageType: ''
    returnType: int
    signature: int port__ctl_del(port_state_t* port_state, SOCKET sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: port__ctl_add
      Src: /src/libevent/wepoll.c:1369,1
    - Dst: port__ctl_mod
      Src: /src/libevent/wepoll.c:1371,1
    - Dst: port__ctl_del
      Src: /src/libevent/wepoll.c:1373,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - port_state
    - op
    - sock
    - ev
    argTypes:
    - port_state_t*
    - int
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1363
    functionDepth: 4
    functionLinenumber: 1363
    functionLinenumberEnd: 1377
    functionName: port__ctl_op
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - port__ctl_mod
    - port__ctl_add
    - port__ctl_del
    linkageType: ''
    returnType: int
    signature: "int port__ctl_op(port_state_t* port_state,\n                        int
      op,\n                        SOCKET sock,\n                        struct epoll_event*
      ev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1385,1
    - Dst: port__ctl_op
      Src: /src/libevent/wepoll.c:1386,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - port_state
    - op
    - sock
    - ev
    argTypes:
    - port_state_t*
    - int
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1379
    functionDepth: 5
    functionLinenumber: 1379
    functionLinenumberEnd: 1390
    functionName: port_ctl
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - LeaveCriticalSection
    - port__ctl_op
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: "int port_ctl(port_state_t* port_state,\n             int op,\n             SOCKET
      sock,\n             struct epoll_event* ev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_add
      Src: /src/libevent/wepoll.c:1395,1
    - Dst: sock_state_to_tree_node
      Src: /src/libevent/wepoll.c:1396,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - port_state
    - sock_state
    - socket
    argTypes:
    - port_state_t*
    - sock_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1400
    functionName: port_register_socket_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - tree_add
    - sock_state_to_tree_node
    linkageType: ''
    returnType: int
    signature: "int port_register_socket_handle(port_state_t* port_state,\n                                sock_state_t*
      sock_state,\n                                SOCKET socket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_del
      Src: /src/libevent/wepoll.c:1404,1
    - Dst: sock_state_to_tree_node
      Src: /src/libevent/wepoll.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1405
    functionName: port_unregister_socket_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - tree_del
    - sock_state_to_tree_node
    linkageType: ''
    returnType: void
    signature: "void port_unregister_socket_handle(port_state_t* port_state,\n                                   sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_find
      Src: /src/libevent/wepoll.c:1408,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1410,1
    - Dst: sock_state_from_tree_node
      Src: /src/libevent/wepoll.c:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - port_state
    - socket
    argTypes:
    - port_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1412
    functionName: port_find_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - return_set_error
    - tree_find
    - sock_state_from_tree_node
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * port_find_socket(port_state_t* port_state, SOCKET socket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1416,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1416,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:1418,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1420
    functionName: port_request_socket_update
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_state_to_queue_node
    - queue_append
    - queue_enqueued
    linkageType: ''
    returnType: void
    signature: "void port_request_socket_update(port_state_t* port_state,\n                                sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:1424,1
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1425,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1425,1
    - Dst: queue_remove
      Src: /src/libevent/wepoll.c:1427,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1428
    functionName: port_cancel_socket_update
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_state_to_queue_node
    - queue_remove
    - queue_enqueued
    - unused_var
    linkageType: ''
    returnType: void
    signature: "void port_cancel_socket_update(port_state_t* port_state,\n                               sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1432,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1432,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:1434,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1436
    functionName: port_add_deleted_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_state_to_queue_node
    - queue_append
    - queue_enqueued
    linkageType: ''
    returnType: void
    signature: "void port_add_deleted_socket(port_state_t* port_state,\n                             sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:1440,1
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1441,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1441,1
    - Dst: queue_remove
      Src: /src/libevent/wepoll.c:1443,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1444
    functionName: port_remove_deleted_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_state_to_queue_node
    - queue_remove
    - queue_enqueued
    - unused_var
    linkageType: ''
    returnType: void
    signature: "void port_remove_deleted_socket(port_state_t* port_state,\n                                sock_state_t*
      sock_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts:
    - condition: (port_state->iocp_handle != NULL)
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1449
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1449
    functionName: port_get_iocp_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE port_get_iocp_handle(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1453
    functionName: port_get_poll_group_queue
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: queue_t
    signature: queue_t * port_get_poll_group_queue(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1457
    functionName: port_state_from_handle_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - container_of
    linkageType: ''
    returnType: port_state_t
    signature: port_state_t * port_state_from_handle_tree_node(ts_tree_node_t* tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1461
    functionName: port_state_to_handle_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ts_tree_node_t
    signature: ts_tree_node_t * port_state_to_handle_tree_node(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1465
    functionName: queue_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_node_init
    linkageType: ''
    returnType: void
    signature: void queue_init(queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1470
    functionName: queue_node_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue_node_init(queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1472
    functionDepth: 0
    functionLinenumber: 1472
    functionLinenumberEnd: 1475
    functionName: queue__detach_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue__detach_node(queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1479
    functionName: queue_first
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - queue_empty
    linkageType: ''
    returnType: queue_node_t
    signature: queue_node_t * queue_first(const queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1483
    functionName: queue_last
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_empty
    linkageType: ''
    returnType: queue_node_t
    signature: queue_node_t * queue_last(const queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1490
    functionName: queue_prepend
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue_prepend(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1497
    functionName: queue_append
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue_append(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue__detach_node
      Src: /src/libevent/wepoll.c:1500,1
    - Dst: queue_prepend
      Src: /src/libevent/wepoll.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    functionName: queue_move_first
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_prepend
    - queue__detach_node
    linkageType: ''
    returnType: void
    signature: void queue_move_first(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue__detach_node
      Src: /src/libevent/wepoll.c:1505,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1507
    functionName: queue_move_last
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_append
    - queue__detach_node
    linkageType: ''
    returnType: void
    signature: void queue_move_last(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue__detach_node
      Src: /src/libevent/wepoll.c:1510,1
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1512
    functionName: queue_remove
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - queue_node_init
    - queue__detach_node
    linkageType: ''
    returnType: void
    signature: void queue_remove(queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1516
    functionName: queue_empty
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 5
    functionsReached:
    - queue_enqueued
    linkageType: ''
    returnType: bool
    signature: bool queue_empty(const queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1518
    functionDepth: 0
    functionLinenumber: 1518
    functionLinenumberEnd: 1520
    functionName: queue_enqueued
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool queue_enqueued(const queue_node_t* node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NtCreateKeyedEvent
      Src: /src/libevent/wepoll.c:1531,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1534,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:1534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1536
    functionName: reflock_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - NtCreateKeyedEvent
    - return_set_error
    - RtlNtStatusToDosError
    linkageType: ''
    returnType: int
    signature: int reflock_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1540
    functionName: reflock_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reflock_init(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NtReleaseKeyedEvent
      Src: /src/libevent/wepoll.c:1544,1
    - Dst: abort
      Src: /src/libevent/wepoll.c:1546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1542
    functionDepth: 0
    functionLinenumber: 1542
    functionLinenumberEnd: 1547
    functionName: reflock__signal_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - abort
    - NtReleaseKeyedEvent
    linkageType: ''
    returnType: void
    signature: void reflock__signal_event(void* address)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NtWaitForKeyedEvent
      Src: /src/libevent/wepoll.c:1551,1
    - Dst: abort
      Src: /src/libevent/wepoll.c:1553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1554
    functionName: reflock__await_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - NtWaitForKeyedEvent
    - abort
    linkageType: ''
    returnType: void
    signature: void reflock__await_event(void* address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedAdd
      Src: /src/libevent/wepoll.c:1557,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1560,1
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts:
    - condition: ((state & REFLOCK__DESTROY_MASK) == 0)
      pos:
        line_end: 1559
        line_start: 1559
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1562
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1562
    functionName: reflock_ref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - InterlockedAdd
    - assert
    - unused_var
    linkageType: ''
    returnType: void
    signature: void reflock_ref(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedAdd
      Src: /src/libevent/wepoll.c:1565,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1568,1
    - Dst: reflock__signal_event
      Src: /src/libevent/wepoll.c:1571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts:
    - condition: ((state & REFLOCK__DESTROY_MASK & ~REFLOCK__DESTROY) == 0)
      pos:
        line_end: 1567
        line_start: 1567
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1572
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1572
    functionName: reflock_unref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - InterlockedAdd
    - assert
    - reflock__signal_event
    linkageType: ''
    returnType: void
    signature: void reflock_unref(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedAdd
      Src: /src/libevent/wepoll.c:1576,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1580,1
    - Dst: reflock__await_event
      Src: /src/libevent/wepoll.c:1583,1
    - Dst: InterlockedExchange
      Src: /src/libevent/wepoll.c:1585,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts:
    - condition: (state == REFLOCK__DESTROY)
      pos:
        line_end: 1585
        line_start: 1585
        source_file: /src/libevent/wepoll.c
    - condition: ((state & REFLOCK__DESTROY_MASK) == REFLOCK__DESTROY)
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1587
      start: 1574
    functionDepth: 1
    functionLinenumber: 1574
    functionLinenumberEnd: 1587
    functionName: reflock_unref_and_destroy
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - InterlockedAdd
    - InterlockedExchange
    - assert
    - reflock__await_event
    linkageType: ''
    returnType: void
    signature: void reflock_unref_and_destroy(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:1614,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1618
    functionName: sock__alloc
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - mm_malloc
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock__alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1622
    functionName: sock__free
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void sock__free(sock_state_t* sock_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1625,1
    - Dst: afd_cancel_poll
      Src: /src/libevent/wepoll.c:1627,1
    - Dst: poll_group_get_afd_helper_handle
      Src: /src/libevent/wepoll.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts:
    - condition: (sock_state->poll_status == SOCK__POLL_PENDING)
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1634
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1634
    functionName: sock__cancel_poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - poll_group_get_afd_helper_handle
    - afd_cancel_poll
    linkageType: ''
    returnType: int
    signature: int sock__cancel_poll(sock_state_t* sock_state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1642,1
    - Dst: ws_get_base_socket
      Src: /src/libevent/wepoll.c:1644,1
    - Dst: poll_group_acquire
      Src: /src/libevent/wepoll.c:1648,1
    - Dst: sock__alloc
      Src: /src/libevent/wepoll.c:1652,1
    - Dst: memset
      Src: /src/libevent/wepoll.c:1656,1
    - Dst: tree_node_init
      Src: /src/libevent/wepoll.c:1661,1
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:1662,1
    - Dst: port_register_socket_handle
      Src: /src/libevent/wepoll.c:1664,1
    - Dst: sock__free
      Src: /src/libevent/wepoll.c:1670,1
    - Dst: poll_group_release
      Src: /src/libevent/wepoll.c:1672,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - port_state
    - socket
    argTypes:
    - port_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1636
    functionDepth: 4
    functionLinenumber: 1636
    functionLinenumberEnd: 1675
    functionName: sock_new
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - poll_group_release
    - tree_node_init
    - port_register_socket_handle
    - queue_node_init
    - sock__alloc
    - sock__free
    - return_set_error
    - poll_group_acquire
    - ws_get_base_socket
    - memset
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock_new(port_state_t* port_state, SOCKET socket)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sock__cancel_poll
      Src: /src/libevent/wepoll.c:1682,1
    - Dst: port_cancel_socket_update
      Src: /src/libevent/wepoll.c:1684,1
    - Dst: port_unregister_socket_handle
      Src: /src/libevent/wepoll.c:1685,1
    - Dst: port_remove_deleted_socket
      Src: /src/libevent/wepoll.c:1695,1
    - Dst: poll_group_release
      Src: /src/libevent/wepoll.c:1696,1
    - Dst: sock__free
      Src: /src/libevent/wepoll.c:1697,1
    - Dst: port_add_deleted_socket
      Src: /src/libevent/wepoll.c:1700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - port_state
    - sock_state
    - force
    argTypes:
    - port_state_t*
    - sock_state_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1677
    functionDepth: 3
    functionLinenumber: 1677
    functionLinenumberEnd: 1704
    functionName: sock__delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port_cancel_socket_update
    - poll_group_release
    - port_unregister_socket_handle
    - sock__cancel_poll
    - sock__free
    - port_remove_deleted_socket
    - port_add_deleted_socket
    linkageType: ''
    returnType: int
    signature: "int sock__delete(port_state_t* port_state,\n                        sock_state_t*
      sock_state,\n                        bool force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1706
    functionDepth: 4
    functionLinenumber: 1706
    functionLinenumberEnd: 1708
    functionName: sock_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - sock__delete
    linkageType: ''
    returnType: void
    signature: void sock_delete(port_state_t* port_state, sock_state_t* sock_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1710
    functionDepth: 4
    functionLinenumber: 1710
    functionLinenumberEnd: 1712
    functionName: sock_force_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - sock__delete
    linkageType: ''
    returnType: void
    signature: void sock_force_delete(port_state_t* port_state, sock_state_t* sock_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_request_socket_update
      Src: /src/libevent/wepoll.c:1726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - port_state
    - sock_state
    - ev
    argTypes:
    - port_state_t*
    - sock_state_t*
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1729
    functionName: sock_set_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - port_request_socket_update
    linkageType: ''
    returnType: int
    signature: "int sock_set_event(port_state_t* port_state,\n                   sock_state_t*
      sock_state,\n                   const struct epoll_event* ev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - epoll_events
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1750
    functionName: sock__epoll_events_to_afd_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD sock__epoll_events_to_afd_events(uint32_t epoll_events)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - afd_events
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1771
    functionName: sock__afd_events_to_epoll_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sock__afd_events_to_epoll_events(DWORD afd_events)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1774,1
    - Dst: sock__cancel_poll
      Src: /src/libevent/wepoll.c:1789,1
    - Dst: sock__epoll_events_to_afd_events
      Src: /src/libevent/wepoll.c:1804,1
    - Dst: afd_poll
      Src: /src/libevent/wepoll.c:1806,1
    - Dst: poll_group_get_afd_helper_handle
      Src: /src/libevent/wepoll.c:1806,1
    - Dst: GetLastError
      Src: /src/libevent/wepoll.c:1809,1
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1815,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1818,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1828,1
    - Dst: port_cancel_socket_update
      Src: /src/libevent/wepoll.c:1831,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts:
    - condition: (!sock_state->delete_pending)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/libevent/wepoll.c
    - condition: (false)
      pos:
        line_end: 1827
        line_start: 1827
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1833
      start: 1773
    functionDepth: 4
    functionLinenumber: 1773
    functionLinenumberEnd: 1833
    functionName: sock_update
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - port_cancel_socket_update
    - sock__cancel_poll
    - sock__epoll_events_to_afd_events
    - sock__delete
    - assert
    - return_map_error
    - GetLastError
    - afd_poll
    - poll_group_get_afd_helper_handle
    linkageType: ''
    returnType: int
    signature: int sock_update(port_state_t* port_state, sock_state_t* sock_state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1839,1
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1848,1
    - Dst: NT_SUCCESS
      Src: /src/libevent/wepoll.c:1853,1
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1862,1
    - Dst: sock__afd_events_to_epoll_events
      Src: /src/libevent/wepoll.c:1867,1
    - Dst: port_request_socket_update
      Src: /src/libevent/wepoll.c:1871,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - port_state
    - io_status_block
    - ev
    argTypes:
    - port_state_t*
    - IO_STATUS_BLOCK*
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1835
    functionDepth: 4
    functionLinenumber: 1835
    functionLinenumberEnd: 1888
    functionName: sock_feed_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - container_of
    - sock__afd_events_to_epoll_events
    - port_request_socket_update
    - NT_SUCCESS
    - sock__delete
    linkageType: ''
    returnType: int
    signature: "int sock_feed_event(port_state_t* port_state,\n                    IO_STATUS_BLOCK*
      io_status_block,\n                    struct epoll_event* ev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue_node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1890
    functionDepth: 1
    functionLinenumber: 1890
    functionLinenumberEnd: 1892
    functionName: sock_state_from_queue_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - container_of
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock_state_from_queue_node(queue_node_t* queue_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1894
    functionDepth: 0
    functionLinenumber: 1894
    functionLinenumberEnd: 1896
    functionName: sock_state_to_queue_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: queue_node_t
    signature: queue_node_t * sock_state_to_queue_node(sock_state_t* sock_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1900
    functionName: sock_state_from_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - container_of
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock_state_from_tree_node(tree_node_t* tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1902
    functionDepth: 0
    functionLinenumber: 1902
    functionLinenumberEnd: 1904
    functionName: sock_state_to_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: tree_node_t
    signature: tree_node_t * sock_state_to_tree_node(sock_state_t* sock_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_init
      Src: /src/libevent/wepoll.c:1907,1
    - Dst: InitializeSRWLock
      Src: /src/libevent/wepoll.c:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ts_tree
    argTypes:
    - ts_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1906
    functionDepth: 1
    functionLinenumber: 1906
    functionLinenumberEnd: 1909
    functionName: ts_tree_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - InitializeSRWLock
    - tree_init
    linkageType: ''
    returnType: void
    signature: void ts_tree_init(ts_tree_t* ts_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_node_init
      Src: /src/libevent/wepoll.c:1912,1
    - Dst: reflock_init
      Src: /src/libevent/wepoll.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1911
    functionDepth: 1
    functionLinenumber: 1911
    functionLinenumberEnd: 1914
    functionName: ts_tree_node_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - reflock_init
    - tree_node_init
    linkageType: ''
    returnType: void
    signature: void ts_tree_node_init(ts_tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/libevent/wepoll.c:1919,1
    - Dst: tree_add
      Src: /src/libevent/wepoll.c:1920,1
    - Dst: ReleaseSRWLockExclusive
      Src: /src/libevent/wepoll.c:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ts_tree
    - node
    - key
    argTypes:
    - ts_tree_t*
    - ts_tree_node_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1924
    functionName: ts_tree_add
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - tree_add
    - AcquireSRWLockExclusive
    - ReleaseSRWLockExclusive
    linkageType: ''
    returnType: int
    signature: int ts_tree_add(ts_tree_t* ts_tree, ts_tree_node_t* node, uintptr_t
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_find
      Src: /src/libevent/wepoll.c:1928,1
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ts_tree
    - key
    argTypes:
    - ts_tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1933
    functionName: ts_tree__find_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - container_of
    - tree_find
    linkageType: ''
    returnType: ts_tree_node_t
    signature: "ts_tree_node_t * ts_tree__find_node(ts_tree_t* ts_tree,\n                                                 uintptr_t
      key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/libevent/wepoll.c:1938,1
    - Dst: ts_tree__find_node
      Src: /src/libevent/wepoll.c:1940,1
    - Dst: tree_del
      Src: /src/libevent/wepoll.c:1942,1
    - Dst: reflock_ref
      Src: /src/libevent/wepoll.c:1943,1
    - Dst: ReleaseSRWLockExclusive
      Src: /src/libevent/wepoll.c:1946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ts_tree
    - key
    argTypes:
    - ts_tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 1949
    functionName: ts_tree_del_and_ref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - AcquireSRWLockExclusive
    - reflock_ref
    - tree_del
    - ts_tree__find_node
    - ReleaseSRWLockExclusive
    linkageType: ''
    returnType: ts_tree_node_t
    signature: ts_tree_node_t * ts_tree_del_and_ref(ts_tree_t* ts_tree, uintptr_t
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockShared
      Src: /src/libevent/wepoll.c:1954,1
    - Dst: ts_tree__find_node
      Src: /src/libevent/wepoll.c:1956,1
    - Dst: reflock_ref
      Src: /src/libevent/wepoll.c:1958,1
    - Dst: ReleaseSRWLockShared
      Src: /src/libevent/wepoll.c:1960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ts_tree
    - key
    argTypes:
    - ts_tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1951
    functionDepth: 2
    functionLinenumber: 1951
    functionLinenumberEnd: 1963
    functionName: ts_tree_find_and_ref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - ReleaseSRWLockShared
    - AcquireSRWLockShared
    - ts_tree__find_node
    - reflock_ref
    linkageType: ''
    returnType: ts_tree_node_t
    signature: ts_tree_node_t * ts_tree_find_and_ref(ts_tree_t* ts_tree, uintptr_t
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reflock_unref
      Src: /src/libevent/wepoll.c:1966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 1967
    functionName: ts_tree_node_unref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - reflock_unref
    linkageType: ''
    returnType: void
    signature: void ts_tree_node_unref(ts_tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reflock_unref_and_destroy
      Src: /src/libevent/wepoll.c:1970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1969
    functionDepth: 2
    functionLinenumber: 1969
    functionLinenumberEnd: 1971
    functionName: ts_tree_node_unref_and_destroy
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - reflock_unref_and_destroy
    linkageType: ''
    returnType: void
    signature: void ts_tree_node_unref_and_destroy(ts_tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/wepoll.c:1974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1975
    functionName: tree_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void tree_init(tree_t* tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/wepoll.c:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1979
    functionName: tree_node_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void tree_node_init(tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cis
    - ','
    - trans
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 2001
    functionName: TREE__ROTATE
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__ROTATE(cis, trans)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - side
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2010
    functionDepth: 0
    functionLinenumber: 2010
    functionLinenumberEnd: 2017
    functionName: TREE__INSERT_OR_DESCEND
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__INSERT_OR_DESCEND(side)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cis
    - ','
    - trans
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2036
    functionName: TREE__REBALANCE_AFTER_INSERT
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__REBALANCE_AFTER_INSERT(cis, trans)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TREE__INSERT_OR_DESCEND
      Src: /src/libevent/wepoll.c:2044,1
    - Dst: TREE__INSERT_OR_DESCEND
      Src: /src/libevent/wepoll.c:2046,1
    - Dst: TREE__REBALANCE_AFTER_INSERT
      Src: /src/libevent/wepoll.c:2062,1
    - Dst: TREE__REBALANCE_AFTER_INSERT
      Src: /src/libevent/wepoll.c:2064,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - tree
    - node
    - key
    argTypes:
    - tree_t*
    - tree_node_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2037
    functionDepth: 1
    functionLinenumber: 2037
    functionLinenumberEnd: 2070
    functionName: tree_add
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - TREE__REBALANCE_AFTER_INSERT
    - TREE__INSERT_OR_DESCEND
    linkageType: ''
    returnType: int
    signature: int tree_add(tree_t* tree, tree_node_t* node, uintptr_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cis
    - ','
    - trans
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2096
    functionName: TREE__REBALANCE_AFTER_REMOVE
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__REBALANCE_AFTER_REMOVE(cis, trans)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TREE__REBALANCE_AFTER_REMOVE
      Src: /src/libevent/wepoll.c:2158,1
    - Dst: TREE__REBALANCE_AFTER_REMOVE
      Src: /src/libevent/wepoll.c:2160,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - tree_t*
    - tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2168
    functionName: tree_del
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - TREE__REBALANCE_AFTER_REMOVE
    linkageType: ''
    returnType: void
    signature: void tree_del(tree_t* tree, tree_node_t* node)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - tree
    - key
    argTypes:
    - tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2181
    functionName: tree_find
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: tree_node_t
    signature: tree_node_t * tree_find(const tree_t* tree, uintptr_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2185
    functionName: tree_root
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: tree_node_t
    signature: tree_node_t * tree_root(const tree_t* tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/wepoll.c:2195,1
    - Dst: MAKEWORD
      Src: /src/libevent/wepoll.c:2195,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:2197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2200
    functionName: ws_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - return_set_error
    - WSAStartup
    - MAKEWORD
    linkageType: ''
    returnType: int
    signature: int ws_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAIoctl
      Src: /src/libevent/wepoll.c:2206,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:2215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - socket
    argTypes:
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2218
    functionName: ws_get_base_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - WSAIoctl
    - return_map_error
    linkageType: ''
    returnType: SOCKET
    signature: SOCKET ws_get_base_socket(SOCKET socket)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: BEV_IS_SOCKET
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_SOCKET(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: BEV_IS_FILTER
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_FILTER(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: BEV_IS_PAIR
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_PAIR(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: BEV_IS_SSL
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_SSL(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: BEV_IS_SSL
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_SSL(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: BEV_IS_ASYNC
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_ASYNC(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: BEV_IS_ASYNC
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_ASYNC(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: bufferevent_wm_suspend_read
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_wm_suspend_read(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: bufferevent_wm_unsuspend_read
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_wm_unsuspend_read(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bufev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: bufferevent_incref_
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_incref_(bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bufev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: bufferevent_decref_
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_decref_(bufev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent-internal.h:417,1
    - Dst: bufferevent_run_readcb_
      Src: /src/libevent/bufferevent-internal.h:418,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent-internal.h:420,1
    - Dst: bufferevent_run_writecb_
      Src: /src/libevent/bufferevent-internal.h:421,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 3
    argNames:
    - bufev
    - iotype
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 422
    functionName: bufferevent_trigger_nolock_
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 1
    functionsReached:
    - bufferevent_run_writecb_
    - evbuffer_get_length
    - bufferevent_run_readcb_
    linkageType: ''
    returnType: void
    signature: void bufferevent_trigger_nolock_(struct bufferevent *bufev, short iotype,
      int options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: BEV_RESET_GENERIC_READ_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_RESET_GENERIC_READ_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: BEV_RESET_GENERIC_WRITE_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_RESET_GENERIC_WRITE_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: BEV_DEL_GENERIC_READ_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_DEL_GENERIC_READ_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: BEV_DEL_GENERIC_WRITE_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_DEL_GENERIC_WRITE_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: BEV_UPCAST
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_UPCAST(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: BEV_LOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_LOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: BEV_UNLOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_UNLOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: BEV_LOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_LOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: BEV_UNLOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_UNLOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: FDI_HAS_READ
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_HAS_READ(fdi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: FDI_HAS_WRITE
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_HAS_WRITE(fdi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: FDI_HAS_EVENTS
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_HAS_EVENTS(fdi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: FDI_TO_SYSEVENTS
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_TO_SYSEVENTS(fdi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evport.c:145,1
    - Dst: port_create
      Src: /src/libevent/evport.c:148,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:149,1
    - Dst: grow
      Src: /src/libevent/evport.c:153,1
    - Dst: close
      Src: /src/libevent/evport.c:154,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:155,1
    - Dst: evsig_init_
      Src: /src/libevent/evport.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: evport_init
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - grow
    - port_create
    - close
    - mm_free
    - evsig_init_
    linkageType: ''
    returnType: void
    signature: 'void *

      evport_init(struct event_base *base)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/evport.c:181,1
    - Dst: mm_realloc
      Src: /src/libevent/evport.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - data
    - min_events
    argTypes:
    - struct evport_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 192
    functionName: grow
    functionSourceFile: /src/libevent/evport.c
    functionUses: 2
    functionsReached:
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int grow(struct evport_data *data, int min_events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:204,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evpd
    argTypes:
    - struct evport_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: check_evportop
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void check_evportop(struct evport_data *evpd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pevt
    argTypes:
    - port_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: check_event
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void check_event(port_event_t* pevt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDI_TO_SYSEVENTS
      Src: /src/libevent/evport.c:235,1
    - Dst: port_associate
      Src: /src/libevent/evport.c:238,1
    - Dst: event_warn
      Src: /src/libevent/evport.c:240,1
    - Dst: check_evportop
      Src: /src/libevent/evport.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - epdp
    - fdip
    - fd
    argTypes:
    - struct evport_data*
    - struct fd_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: reassociate
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - check_evportop
    - port_associate
    - FDI_TO_SYSEVENTS
    - event_warn
    linkageType: ''
    returnType: int
    signature: int reassociate(struct evport_data *epdp, struct fd_info *fdip, int
      fd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_get_fdinfo_
      Src: /src/libevent/evport.c:294,1
    - Dst: FDI_HAS_EVENTS
      Src: /src/libevent/evport.c:297,1
    - Dst: reassociate
      Src: /src/libevent/evport.c:298,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/evport.c:304,1
    - Dst: port_getn
      Src: /src/libevent/evport.c:306,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/evport.c:309,1
    - Dst: event_warn
      Src: /src/libevent/evport.c:318,1
    - Dst: event_debug
      Src: /src/libevent/evport.c:323,1
    - Dst: check_evportop
      Src: /src/libevent/evport.c:331,1
    - Dst: check_event
      Src: /src/libevent/evport.c:332,1
    - Dst: evmap_io_active_
      Src: /src/libevent/evport.c:356,1
    - Dst: grow
      Src: /src/libevent/evport.c:364,1
    - Dst: check_evportop
      Src: /src/libevent/evport.c:367,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 370
    functionName: evport_dispatch
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - event_warn
    - check_evportop
    - grow
    - evmap_io_active_
    - port_getn
    - FDI_HAS_EVENTS
    - check_event
    - EVBASE_RELEASE_LOCK
    - event_debug
    - reassociate
    - evmap_io_get_fdinfo_
    linkageType: ''
    returnType: int
    signature: int evport_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_evportop
      Src: /src/libevent/evport.c:384,1
    - Dst: reassociate
      Src: /src/libevent/evport.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: evport_add
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - reassociate
    - check_evportop
    linkageType: ''
    returnType: int
    signature: int evport_add(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_evportop
      Src: /src/libevent/evport.c:402,1
    - Dst: FDI_HAS_EVENTS
      Src: /src/libevent/evport.c:407,1
    - Dst: port_dissociate
      Src: /src/libevent/evport.c:408,1
    - Dst: event_warn
      Src: /src/libevent/evport.c:414,1
    - Dst: FDI_HAS_EVENTS
      Src: /src/libevent/evport.c:418,1
    - Dst: reassociate
      Src: /src/libevent/evport.c:419,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 431
    functionName: evport_del
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - port_dissociate
    - event_warn
    - check_evportop
    - EVUTIL_ASSERT
    - FDI_HAS_EVENTS
    - reassociate
    linkageType: ''
    returnType: int
    signature: int evport_del(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/evport.c:439,1
    - Dst: close
      Src: /src/libevent/evport.c:441,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:444,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:446,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 449
    functionName: evport_dealloc
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - evsig_dealloc_
    - close
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evport_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: evthread_set_id_callback
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evthread_set_id_callback(unsigned long (*id_fn)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: evthread_get_lock_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evthread_lock_callbacks
    signature: struct evthread_lock_callbacks *evthread_get_lock_callbacks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: evthread_get_condition_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evthread_condition_callbacks
    signature: struct evthread_condition_callbacks *evthread_get_condition_callbacks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: evthreadimpl_disable_lock_debugging_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evthreadimpl_disable_lock_debugging_(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evthread_get_lock_callbacks
      Src: /src/libevent/evthread.c:95,1
    - Dst: event_errx
      Src: /src/libevent/evthread.c:100,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:107,1
    - Dst: memset
      Src: /src/libevent/evthread.c:109,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:123,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:128,1
    - Dst: event_global_setup_locks_
      Src: /src/libevent/evthread.c:129,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 1
    argNames:
    - cbs
    argTypes:
    - struct evthread_lock_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 133
    functionName: evthread_set_lock_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - event_warnx
    - event_errx
    - event_global_setup_locks_
    - evthread_get_lock_callbacks
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evthread_set_lock_callbacks(const struct evthread_lock_callbacks
      *cbs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evthread_get_condition_callbacks
      Src: /src/libevent/evthread.c:138,1
    - Dst: event_errx
      Src: /src/libevent/evthread.c:143,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:150,1
    - Dst: memset
      Src: /src/libevent/evthread.c:153,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:166,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:172,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - cbs
    argTypes:
    - struct evthread_condition_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 180
    functionName: evthread_set_condition_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - event_warnx
    - event_errx
    - evthread_get_condition_callbacks
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evthread_set_condition_callbacks(const struct evthread_condition_callbacks
      *cbs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread.c:197,1
    - Dst: alloc
      Src: /src/libevent/evthread.c:201,1
    - Dst: mm_free
      Src: /src/libevent/evthread.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 214
    functionName: debug_lock_alloc
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - alloc
    - mm_free
    linkageType: ''
    returnType: void
    signature: 'void *

      debug_lock_alloc(unsigned locktype)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:220,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:221,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:222,1
    - Dst: free
      Src: /src/libevent/evthread.c:224,1
    - Dst: mm_free
      Src: /src/libevent/evthread.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: debug_lock_free
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - free
    - EVUTIL_ASSERT
    - mm_free
    linkageType: ''
    returnType: void
    signature: void debug_lock_free(void *lock_, unsigned locktype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:236,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:239,1
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:242,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - struct debug_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: evthread_debug_lock_mark_locked
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evthread_id_fn_
    linkageType: ''
    returnType: void
    signature: void evthread_debug_lock_mark_locked(unsigned mode, struct debug_lock
      *lock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:255,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:257,1
    - Dst: lock
      Src: /src/libevent/evthread.c:259,1
    - Dst: evthread_debug_lock_mark_locked
      Src: /src/libevent/evthread.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: debug_lock_lock
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evthread_debug_lock_mark_locked
    - lock
    linkageType: ''
    returnType: int
    signature: int debug_lock_lock(unsigned mode, void *lock_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:269,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:271,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:273,1
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:276,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:277,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - struct debug_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: evthread_debug_lock_mark_unlocked
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evthread_id_fn_
    linkageType: ''
    returnType: void
    signature: void evthread_debug_lock_mark_unlocked(unsigned mode, struct debug_lock
      *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthread_debug_lock_mark_unlocked
      Src: /src/libevent/evthread.c:290,1
    - Dst: unlock
      Src: /src/libevent/evthread.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: debug_lock_unlock
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - unlock
    - evthread_debug_lock_mark_unlocked
    linkageType: ''
    returnType: int
    signature: int debug_lock_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:301,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:302,1
    - Dst: EVLOCK_ASSERT_LOCKED
      Src: /src/libevent/evthread.c:303,1
    - Dst: evthread_debug_lock_mark_unlocked
      Src: /src/libevent/evthread.c:304,1
    - Dst: wait_condition
      Src: /src/libevent/evthread.c:305,1
    - Dst: evthread_debug_lock_mark_locked
      Src: /src/libevent/evthread.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: debug_cond_wait
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_debug_lock_mark_unlocked
    - EVUTIL_ASSERT
    - evthread_debug_lock_mark_locked
    - EVLOCK_ASSERT_LOCKED
    - wait_condition
    linkageType: ''
    returnType: int
    signature: int debug_cond_wait(void *cond_, void *lock_, const struct timeval
      *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/evthread.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: evthread_enable_lock_debuging
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_enable_lock_debugging
    linkageType: ''
    returnType: void
    signature: void evthread_enable_lock_debuging(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/evthread.c:330,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:332,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:335,1
    - Dst: event_global_setup_locks_
      Src: /src/libevent/evthread.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 342
    functionName: evthread_enable_lock_debugging
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 1
    functionsReached:
    - event_global_setup_locks_
    - memcpy
    linkageType: ''
    returnType: void
    signature: void evthread_enable_lock_debugging(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - lock_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: evthread_is_debug_lock_held_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_id_fn_
    linkageType: ''
    returnType: int
    signature: int evthread_is_debug_lock_held_(void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: evthread_debug_get_real_lock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_debug_get_real_lock_(void *lock_)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:376,1
    - Dst: debug_lock_alloc
      Src: /src/libevent/evthread.c:377,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:381,1
    - Dst: free
      Src: /src/libevent/evthread.c:385,1
    - Dst: debug_lock_alloc
      Src: /src/libevent/evthread.c:386,1
    - Dst: mm_malloc
      Src: /src/libevent/evthread.c:388,1
    - Dst: free
      Src: /src/libevent/evthread.c:390,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:400,1
    - Dst: alloc
      Src: /src/libevent/evthread.c:401,1
    - Dst: debug_lock_alloc
      Src: /src/libevent/evthread.c:404,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:407,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:408,1
    - Dst: alloc
      Src: /src/libevent/evthread.c:410,1
    - Dst: mm_free
      Src: /src/libevent/evthread.c:414,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - lock_
    - locktype
    - enable_locks
    argTypes:
    - void*
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 420
    functionName: evthread_setup_global_lock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - free
    - mm_malloc
    - alloc
    - EVUTIL_ASSERT
    - debug_lock_alloc
    - mm_free
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_setup_global_lock_(void *lock_, unsigned locktype, int enable_locks)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: evthreadimpl_get_id_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_id_fn_
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long evthreadimpl_get_id_()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc
      Src: /src/libevent/evthread.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: evthreadimpl_lock_alloc_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evthreadimpl_lock_alloc_(unsigned locktype)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/evthread.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lock
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: evthreadimpl_lock_free_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void evthreadimpl_lock_free_(void *lock, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libevent/evthread.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: evthreadimpl_lock_lock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 1
    functionsReached:
    - lock
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_lock_lock_(unsigned mode, void *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/libevent/evthread.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 462
    functionName: evthreadimpl_lock_unlock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_lock_unlock_(unsigned mode, void *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_condition
      Src: /src/libevent/evthread.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - condtype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: evthreadimpl_cond_alloc_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - alloc_condition
    linkageType: ''
    returnType: void
    signature: 'void *

      evthreadimpl_cond_alloc_(unsigned condtype)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_condition
      Src: /src/libevent/evthread.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cond
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: evthreadimpl_cond_free_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - free_condition
    linkageType: ''
    returnType: void
    signature: void evthreadimpl_cond_free_(void *cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal_condition
      Src: /src/libevent/evthread.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cond
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: evthreadimpl_cond_signal_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - signal_condition
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_cond_signal_(void *cond, int broadcast)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait_condition
      Src: /src/libevent/evthread.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cond
    - lock
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: evthreadimpl_cond_wait_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - wait_condition
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_cond_wait_(void *cond, void *lock, const struct timeval
      *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: evthreadimpl_is_lock_debugging_enabled_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_is_lock_debugging_enabled_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: evthreadimpl_locking_enabled_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_locking_enabled_(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/bufferevent_mbedtls.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mbedtls_context_init
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      mbedtls_context_init(void *ssl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_mbedtls_dyncontext_free
      Src: /src/libevent/bufferevent_mbedtls.c:68,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_mbedtls.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: mbedtls_context_free
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_mbedtls_dyncontext_free
    - mm_free
    linkageType: ''
    returnType: void
    signature: void mbedtls_context_free(void *ssl, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_renegotiate
      Src: /src/libevent/bufferevent_mbedtls.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: mbedtls_context_renegotiate
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_renegotiate
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_renegotiate(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_write
      Src: /src/libevent/bufferevent_mbedtls.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: mbedtls_context_write
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_write
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_write(void *ssl, const unsigned char *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_read
      Src: /src/libevent/bufferevent_mbedtls.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: mbedtls_context_read
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_read
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_read(void *ssl, unsigned char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_get_bytes_avail
      Src: /src/libevent/bufferevent_mbedtls.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: mbedtls_context_pending
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_get_bytes_avail
    linkageType: ''
    returnType: size_t
    signature: size_t mbedtls_context_pending(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_handshake
      Src: /src/libevent/bufferevent_mbedtls.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: mbedtls_context_handshake
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_handshake
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_handshake(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - ret
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: mbedtls_get_error
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_get_error(void *ssl, int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: mbedtls_clear_error
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mbedtls_clear_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: mbedtls_clear
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_clear(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: mbedtls_set_ssl_noops
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mbedtls_set_ssl_noops(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: mbedtls_handshake_is_ok
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_handshake_is_ok(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: mbedtls_is_want_read
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_is_want_read(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: mbedtls_is_want_write
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_is_want_write(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: be_mbedtls_get_fd
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t be_mbedtls_get_fd(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_strerror
      Src: /src/libevent/bufferevent_mbedtls.c:156,1
    - Dst: printf
      Src: /src/libevent/bufferevent_mbedtls.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - printf
    - mbedtls_strerror
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/bufferevent_mbedtls.c:179,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_mbedtls.c:180,1
    - Dst: evbuffer_remove
      Src: /src/libevent/bufferevent_mbedtls.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: bio_bufferevent_read
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - evbuffer_get_length
    - evbuffer_remove
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_read(void *ctx, unsigned char *out, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/bufferevent_mbedtls.c:201,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_mbedtls.c:202,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_mbedtls.c:214,1
    - Dst: evbuffer_add
      Src: /src/libevent/bufferevent_mbedtls.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 217
    functionName: bio_bufferevent_write
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - EVUTIL_ASSERT
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_write(void *ctx, const unsigned char *in, size_t
      inlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_strerror
      Src: /src/libevent/bufferevent_mbedtls.c:229,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_mbedtls.c:235,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_mbedtls.c:239,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_mbedtls.c:244,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_mbedtls.c:247,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_mbedtls.c:248,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_mbedtls.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - bev_ssl
    - when
    - errcode
    - ret
    argTypes:
    - struct bufferevent_ssl*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 251
    functionName: conn_closed
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_writing
    - mbedtls_strerror
    - bufferevent_ssl_put_error
    - bufferevent_run_eventcb_
    - event_warnx
    - bufferevent_ssl_stop_reading
    linkageType: ''
    returnType: void
    signature: void conn_closed(struct bufferevent_ssl *bev_ssl, int when, int errcode,
      int ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_set_bio
      Src: /src/libevent/bufferevent_mbedtls.c:259,1
    - Dst: mbedtls_ssl_set_bio
      Src: /src/libevent/bufferevent_mbedtls.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 266
    functionName: be_mbedtls_bio_set_fd
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_set_bio
    linkageType: ''
    returnType: int
    signature: int be_mbedtls_bio_set_fd(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_get_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_mbedtls.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: bufferevent_mbedtls_get_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_get_allow_dirty_shutdown
    linkageType: ''
    returnType: int
    signature: int bufferevent_mbedtls_get_allow_dirty_shutdown(struct bufferevent
      *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_mbedtls.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - allow_dirty_shutdown
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: bufferevent_mbedtls_set_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_set_allow_dirty_shutdown
    linkageType: ''
    returnType: void
    signature: "void bufferevent_mbedtls_set_allow_dirty_shutdown(\n\tstruct bufferevent
      *bev, int allow_dirty_shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: bufferevent_mbedtls_get_ssl
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: mbedtls_ssl_context
    signature: 'mbedtls_ssl_context *

      bufferevent_mbedtls_get_ssl(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_renegotiate_impl
      Src: /src/libevent/bufferevent_mbedtls.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: bufferevent_mbedtls_renegotiate
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_renegotiate_impl
    linkageType: ''
    returnType: int
    signature: int bufferevent_mbedtls_renegotiate(struct bufferevent *bufev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:301,1
    - Dst: bufferevent_get_ssl_error
      Src: /src/libevent/bufferevent_mbedtls.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: bufferevent_get_mbedtls_error
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_ssl_error
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bufferevent_get_mbedtls_error(struct bufferevent *bufev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_mbedtls.c:342,1
    - Dst: be_mbedtls_bio_set_fd
      Src: /src/libevent/bufferevent_mbedtls.c:346,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:346,1
    - Dst: bufferevent_mbedtls_dyncontext_free
      Src: /src/libevent/bufferevent_mbedtls.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - base
    - underlying
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - mbedtls_ssl_context*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: bufferevent_mbedtls_filter_new
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    - bufferevent_ssl_new_impl
    - bufferevent_mbedtls_dyncontext_free
    - be_mbedtls_bio_set_fd
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_mbedtls_filter_new(struct event_base
      *base,\n\tstruct bufferevent *underlying, mbedtls_ssl_context *ssl,\n\tenum
      bufferevent_ssl_state state, int options)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/bufferevent_mbedtls.c:371,1
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_mbedtls.c:397,1
    - Dst: be_mbedtls_bio_set_fd
      Src: /src/libevent/bufferevent_mbedtls.c:401,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:401,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - base
    - fd
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - mbedtls_ssl_context*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 407
    functionName: bufferevent_mbedtls_socket_new
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    - bufferevent_getfd
    - bufferevent_ssl_new_impl
    - be_mbedtls_bio_set_fd
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_mbedtls_socket_new(struct event_base
      *base, evutil_socket_t fd,\n\tmbedtls_ssl_context *ssl, enum bufferevent_ssl_state
      state, int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_mbedtls.c:412,1
    - Dst: mbedtls_ssl_init
      Src: /src/libevent/bufferevent_mbedtls.c:413,1
    - Dst: mbedtls_ssl_setup
      Src: /src/libevent/bufferevent_mbedtls.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct mbedtls_ssl_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: bufferevent_mbedtls_dyncontext_new
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_setup
    - mbedtls_ssl_init
    - mm_calloc
    linkageType: ''
    returnType: mbedtls_dyncontext
    signature: 'mbedtls_dyncontext *

      bufferevent_mbedtls_dyncontext_new(struct mbedtls_ssl_config *conf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_free
      Src: /src/libevent/bufferevent_mbedtls.c:421,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_mbedtls.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_dyncontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: bufferevent_mbedtls_dyncontext_free
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 2
    functionsReached:
    - mbedtls_ssl_free
    - mm_free
    linkageType: ''
    returnType: void
    signature: void bufferevent_mbedtls_dyncontext_free(mbedtls_dyncontext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event_iocp.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o
    - cb
    argTypes:
    - struct event_overlapped*
    - iocp_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: event_overlapped_init_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void event_overlapped_init_(struct event_overlapped *o, iocp_callback
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/event_iocp.c:61,1
    - Dst: struct event_overlapped*::cb
      Src: /src/libevent/event_iocp.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - o
    - completion_key
    - nBytes
    - ok
    argTypes:
    - OVERLAPPED*
    - ULONG_PTR
    - DWORD
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: handle_entry
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - struct event_overlapped*::cb
    linkageType: ''
    returnType: void
    signature: void handle_entry(OVERLAPPED *o, ULONG_PTR completion_key, DWORD nBytes,
      int ok)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetQueuedCompletionStatus
      Src: /src/libevent/event_iocp.c:79,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:81,1
    - Dst: ReleaseSemaphore
      Src: /src/libevent/event_iocp.c:84,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:86,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:89,1
    - Dst: handle_entry
      Src: /src/libevent/event_iocp.c:92,1
    - Dst: event_warnx
      Src: /src/libevent/event_iocp.c:96,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:97,1
    - Dst: ReleaseSemaphore
      Src: /src/libevent/event_iocp.c:99,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - port_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 101
    functionName: loop
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 5
    functionsReached:
    - handle_entry
    - LeaveCriticalSection
    - EnterCriticalSection
    - event_warnx
    - ReleaseSemaphore
    - GetQueuedCompletionStatus
    linkageType: ''
    returnType: void
    signature: void loop(void *port_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/event_iocp.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - port
    - fd
    - key
    argTypes:
    - struct event_iocp_port*
    - evutil_socket_t
    - ev_uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: event_iocp_port_associate_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 2
    functionsReached:
    - CreateIoCompletionPort
    linkageType: ''
    returnType: int
    signature: "int event_iocp_port_associate_(struct event_iocp_port *port, evutil_socket_t
      fd,\n    ev_uintptr_t key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSAIoctl
      Src: /src/libevent/event_iocp.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - which_fn
    argTypes:
    - SOCKET
    - GUID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: get_extension_function
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - WSAIoctl
    linkageType: ''
    returnType: void
    signature: 'void *

      get_extension_function(SOCKET s, const GUID *which_fn)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/event_iocp.c:155,1
    - Dst: get_extension_function
      Src: /src/libevent/event_iocp.c:158,1
    - Dst: get_extension_function
      Src: /src/libevent/event_iocp.c:159,1
    - Dst: get_extension_function
      Src: /src/libevent/event_iocp.c:160,1
    - Dst: closesocket
      Src: /src/libevent/event_iocp.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ext
    argTypes:
    - struct win32_extension_fns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: init_extension_functions
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - socket
    - get_extension_function
    - closesocket
    linkageType: ''
    returnType: void
    signature: void init_extension_functions(struct win32_extension_fns *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: event_get_win32_extension_fns_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct win32_extension_fns
    signature: 'struct win32_extension_fns *

      event_get_win32_extension_fns_(void)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: init_extension_functions
      Src: /src/libevent/event_iocp.c:184,1
    - Dst: mm_calloc
      Src: /src/libevent/event_iocp.c:186,1
    - Dst: mm_calloc
      Src: /src/libevent/event_iocp.c:192,1
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/event_iocp.c:196,1
    - Dst: CreateSemaphore
      Src: /src/libevent/event_iocp.c:202,1
    - Dst: _beginthread
      Src: /src/libevent/event_iocp.c:207,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/event_iocp.c:214,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:219,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:221,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:223,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:224,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - n_cpus
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 226
    functionName: event_iocp_port_launch_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - CloseHandle
    - _beginthread
    - InitializeCriticalSectionAndSpinCount
    - CreateIoCompletionPort
    - mm_free
    - init_extension_functions
    - CreateSemaphore
    linkageType: ''
    returnType: struct event_iocp_port
    signature: 'struct event_iocp_port *

      event_iocp_port_launch_(int n_cpus)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/libevent/event_iocp.c:231,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:232,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:233,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:234,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct event_iocp_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: event_iocp_port_unlock_and_free_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - DeleteCriticalSection
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_iocp_port_unlock_and_free_(struct event_iocp_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PostQueuedCompletionStatus
      Src: /src/libevent/event_iocp.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct event_iocp_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: event_iocp_notify_all
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - PostQueuedCompletionStatus
    linkageType: ''
    returnType: int
    signature: int event_iocp_notify_all(struct event_iocp_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:257,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:259,1
    - Dst: event_iocp_notify_all
      Src: /src/libevent/event_iocp.c:260,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/event_iocp.c:265,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:266,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:268,1
    - Dst: event_iocp_port_unlock_and_free_
      Src: /src/libevent/event_iocp.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - port
    - waitMsec
    argTypes:
    - struct event_iocp_port*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 275
    functionName: event_iocp_shutdown_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - EnterCriticalSection
    - WaitForSingleObject
    - event_iocp_port_unlock_and_free_
    - event_iocp_notify_all
    linkageType: ''
    returnType: int
    signature: int event_iocp_shutdown_(struct event_iocp_port *port, long waitMsec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PostQueuedCompletionStatus
      Src: /src/libevent/event_iocp.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - port
    - o
    - key
    - n
    argTypes:
    - struct event_iocp_port*
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 286
    functionName: event_iocp_activate_overlapped_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - PostQueuedCompletionStatus
    linkageType: ''
    returnType: int
    signature: "int event_iocp_activate_overlapped_(\n    struct event_iocp_port *port,
      struct event_overlapped *o,\n    ev_uintptr_t key, ev_uint32_t n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: event_base_get_iocp_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct event_iocp_port
    signature: 'struct event_iocp_port *

      event_base_get_iocp_(struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: CHAIN_SPACE_PTR
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_SPACE_PTR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: CHAIN_SPACE_LEN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_SPACE_LEN(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: CHAIN_PINNED
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_PINNED(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: CHAIN_PINNED_R
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_PINNED_R(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: PTR_NOT_FOUND
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_NOT_FOUND(ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/buffer.c:164,1
    - Dst: memset
      Src: /src/libevent/buffer.c:167,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 179
    functionName: evbuffer_chain_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - memset
    - EVBUFFER_CHAIN_EXTRA
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_chain_new(size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: evbuffer_chain_new_membuf
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chain_new
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_chain_new_membuf(size_t size)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:207,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:213,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:224,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:234,1
    - Dst: UnmapViewOfFile
      Src: /src/libevent/buffer.c:240,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/buffer.c:242,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:247,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:254,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:255,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:256,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:257,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer.c:258,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 262
    functionName: evbuffer_chain_free
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - UnmapViewOfFile
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    - EVUTIL_ASSERT
    - EVBUFFER_CHAIN_EXTRA
    - evbuffer_file_segment_free
    - evbuffer_chain_free
    - CHAIN_PINNED
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_free(struct evbuffer_chain *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: evbuffer_free_all_chains
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chain_free
    linkageType: ''
    returnType: void
    signature: void evbuffer_free_all_chains(struct evbuffer_chain *chain)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: evbuffer_chains_all_empty
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evbuffer_chains_all_empty(struct evbuffer_chain *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: evbuffer_chains_all_empty
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evbuffer_chains_all_empty(struct evbuffer_chain *chain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:304,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:307,1
    - Dst: evbuffer_chains_all_empty
      Src: /src/libevent/buffer.c:307,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 312
    functionName: evbuffer_free_trailing_empty_chains
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chains_all_empty
    - EVUTIL_ASSERT
    - evbuffer_free_all_chains
    - CHAIN_PINNED
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain **

      evbuffer_free_trailing_empty_chains(struct evbuffer *buf)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:321,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:324,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:325,1
    - Dst: evbuffer_free_trailing_empty_chains
      Src: /src/libevent/buffer.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - chain
    argTypes:
    - struct evbuffer*
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: evbuffer_chain_insert
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evbuffer_free_trailing_empty_chains
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: "void evbuffer_chain_insert(struct evbuffer *buf,\n    struct evbuffer_chain
      *chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:342,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - datlen
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 346
    functionName: evbuffer_chain_insert_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chain_new_membuf
    - evbuffer_chain_insert
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_chain_insert_new(struct evbuffer *buf, size_t datlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chain
    - flag
    argTypes:
    - struct evbuffer_chain*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: evbuffer_chain_pin_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_pin_(struct evbuffer_chain *chain, unsigned flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:358,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - chain
    - flag
    argTypes:
    - struct evbuffer_chain*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: evbuffer_chain_unpin_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - evbuffer_chain_free
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_unpin_(struct evbuffer_chain *chain, unsigned flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: evbuffer_chain_incref
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_incref(struct evbuffer_chain *chain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer.c:375,1
    - Dst: LIST_INIT
      Src: /src/libevent/buffer.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: evbuffer_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 5
    functionsReached:
    - mm_calloc
    - LIST_INIT
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      evbuffer_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:390,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - flags
    argTypes:
    - struct evbuffer*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: evbuffer_set_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_set_flags(struct evbuffer *buf, ev_uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:399,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - flags
    argTypes:
    - struct evbuffer*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: evbuffer_clear_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_clear_flags(struct evbuffer *buf, ev_uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:408,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: evbuffer_incref_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_incref_(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: evbuffer_incref_and_lock_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_incref_and_lock_(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:423,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/buffer.c:426,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/buffer.c:427,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - base
    argTypes:
    - struct evbuffer*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: evbuffer_defer_callbacks
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - event_deferred_cb_init_
    - EVBUFFER_LOCK
    - event_base_get_npriorities
    linkageType: ''
    returnType: int
    signature: int evbuffer_defer_callbacks(struct evbuffer *buffer, struct event_base
      *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/buffer.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - lock
    argTypes:
    - struct evbuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 455
    functionName: evbuffer_enable_locking
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_enable_locking(struct evbuffer *buf, void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:460,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - bev
    argTypes:
    - struct evbuffer*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: evbuffer_set_parent_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_set_parent_(struct evbuffer *buf, struct bufferevent
      *bev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:488,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/buffer.c:490,1
    - Dst: LIST_FIRST
      Src: /src/libevent/buffer.c:505,1
    - Dst: LIST_END
      Src: /src/libevent/buffer.c:506,1
    - Dst: LIST_NEXT
      Src: /src/libevent/buffer.c:510,1
    - Dst: struct evbuffer_cb_entry*::cb::cb_obsolete
      Src: /src/libevent/buffer.c:516,1
    - Dst: struct evbuffer_cb_entry*::cb::cb_func
      Src: /src/libevent/buffer.c:519,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - buffer
    - running_deferred
    argTypes:
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 521
    functionName: evbuffer_run_callbacks
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - struct evbuffer_cb_entry*::cb::cb_func
    - LIST_FIRST
    - LIST_NEXT
    - ASSERT_EVBUFFER_LOCKED
    - struct evbuffer_cb_entry*::cb::cb_obsolete
    - LIST_EMPTY
    - LIST_END
    linkageType: ''
    returnType: void
    signature: void evbuffer_run_callbacks(struct evbuffer *buffer, int running_deferred)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_EMPTY
      Src: /src/libevent/buffer.c:526,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/buffer.c:532,1
    - Dst: evbuffer_incref_and_lock_
      Src: /src/libevent/buffer.c:533,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/buffer.c:535,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:536,1
    - Dst: evbuffer_run_callbacks
      Src: /src/libevent/buffer.c:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: evbuffer_invoke_callbacks_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - bufferevent_incref_
    - evbuffer_run_callbacks
    - LIST_EMPTY
    - evbuffer_incref_and_lock_
    - EVBUFFER_UNLOCK
    - event_deferred_cb_schedule_
    linkageType: ''
    returnType: void
    signature: void evbuffer_invoke_callbacks_(struct evbuffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:551,1
    - Dst: evbuffer_run_callbacks
      Src: /src/libevent/buffer.c:553,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer.c:554,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/buffer.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 557
    functionName: evbuffer_deferred_callback
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_run_callbacks
    - bufferevent_decref_
    - evbuffer_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void evbuffer_deferred_callback(struct event_callback *cb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FIRST
      Src: /src/libevent/buffer.c:564,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/buffer.c:565,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 568
    functionName: evbuffer_remove_all_callbacks
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - LIST_REMOVE
    - LIST_FIRST
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evbuffer_remove_all_callbacks(struct evbuffer *buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:574,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:576,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:579,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:585,1
    - Dst: evbuffer_remove_all_callbacks
      Src: /src/libevent/buffer.c:587,1
    - Dst: event_deferred_cb_cancel_
      Src: /src/libevent/buffer.c:589,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:591,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/buffer.c:593,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 595
    functionName: evbuffer_decref_and_unlock_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 4
    functionsReached:
    - event_deferred_cb_cancel_
    - ASSERT_EVBUFFER_LOCKED
    - EVUTIL_ASSERT
    - evbuffer_chain_free
    - evbuffer_remove_all_callbacks
    - EVTHREAD_FREE_LOCK
    - mm_free
    - EVBUFFER_UNLOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_decref_and_unlock_(struct evbuffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:600,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 602
    functionName: evbuffer_free
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 8
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void evbuffer_free(struct evbuffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:610,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - max
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 614
    functionName: evbuffer_set_max_read
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_set_max_read(struct evbuffer *buf, size_t max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:618,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 622
    functionName: evbuffer_get_max_read
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_get_max_read(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 628
    functionName: evbuffer_lock
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_lock(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: evbuffer_unlock
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_unlock(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:640,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 644
    functionName: evbuffer_get_length
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 29
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_get_length(const struct evbuffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:652,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 658
    functionName: evbuffer_get_contiguous_space
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_get_contiguous_space(const struct evbuffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:666,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer.c:674,1
    - Dst: evbuffer_add
      Src: /src/libevent/buffer.c:684,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - vec
    - n_vec
    argTypes:
    - struct evbuffer*
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 694
    functionName: evbuffer_add_iovec
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_expand_fast_
    - EVBUFFER_LOCK
    - EVBUFFER_UNLOCK
    - evbuffer_add
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_add_iovec(struct evbuffer * buf, struct evbuffer_iovec
      * vec, int n_vec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:703,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:709,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:712,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:713,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:714,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer.c:717,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer.c:719,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:724,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - buf
    - size
    - vec
    - n_vecs
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 727
    functionName: evbuffer_reserve_space
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_expand_fast_
    - evbuffer_expand_singlechain
    - EVUTIL_ASSERT
    - CHAIN_SPACE_LEN
    - evbuffer_read_setup_vecs_
    - EVBUFFER_UNLOCK
    - CHAIN_SPACE_PTR
    linkageType: ''
    returnType: int
    signature: "int evbuffer_reserve_space(struct evbuffer *buf, ev_ssize_t size,\n
      \   struct evbuffer_iovec *vec, int n_vecs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 747
    functionName: advance_last_with_data
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: int advance_last_with_data(struct evbuffer *buf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:758,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:766,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:769,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:774,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:782,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:792,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:793,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:812,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:815,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 3
    argNames:
    - buf
    - vec
    - n_vecs
    argTypes:
    - struct evbuffer*
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 817
    functionName: evbuffer_commit_space
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - CHAIN_SPACE_LEN
    - advance_last_with_data
    - evbuffer_invoke_callbacks_
    - EVBUFFER_UNLOCK
    - CHAIN_SPACE_PTR
    linkageType: ''
    returnType: int
    signature: "int evbuffer_commit_space(struct evbuffer *buf,\n    struct evbuffer_iovec
      *vec, int n_vecs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: HAS_PINNED_R
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - CHAIN_PINNED_R
    linkageType: ''
    returnType: int
    signature: int HAS_PINNED_R(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 833
    functionName: ZERO_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void ZERO_CHAIN(struct evbuffer *dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:845,1
    - Dst: HAS_PINNED_R
      Src: /src/libevent/buffer.c:847,1
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:853,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:855,1
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:855,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:864,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:865,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - src
    - first
    - last
    argTypes:
    - struct evbuffer*
    - struct evbuffer_chain**
    - struct evbuffer_chain**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 881
    functionName: PRESERVE_PINNED
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    - evbuffer_chain_new_membuf
    - EVUTIL_ASSERT
    - CHAIN_PINNED_R
    - HAS_PINNED_R
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int PRESERVE_PINNED(struct evbuffer *src, struct evbuffer_chain **first,\n\t\tstruct
      evbuffer_chain **last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:887,1
    - Dst: ZERO_CHAIN
      Src: /src/libevent/buffer.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - src
    - pinned
    - last
    argTypes:
    - struct evbuffer*
    - struct evbuffer_chain*
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 898
    functionName: RESTORE_PINNED
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ZERO_CHAIN
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: "void RESTORE_PINNED(struct evbuffer *src, struct evbuffer_chain *pinned,\n\t\tstruct
      evbuffer_chain *last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:903,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 912
    functionName: COPY_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void COPY_CHAIN(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:919,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:920,1
    - Dst: evbuffer_free_trailing_empty_chains
      Src: /src/libevent/buffer.c:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 914
    functionDepth: 4
    functionLinenumber: 914
    functionLinenumberEnd: 931
    functionName: APPEND_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_free_trailing_empty_chains
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void APPEND_CHAIN(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:940,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:941,1
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:949,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:951,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:954,1
    - Dst: evbuffer_incref_
      Src: /src/libevent/buffer.c:958,1
    - Dst: evbuffer_chain_incref
      Src: /src/libevent/buffer.c:961,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 971
    functionName: APPEND_CHAIN_MULTICAST
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chain_new
    - evbuffer_chain_incref
    - event_warn
    - ASSERT_EVBUFFER_LOCKED
    - EVBUFFER_CHAIN_EXTRA
    - evbuffer_incref_
    - evbuffer_chain_insert
    linkageType: ''
    returnType: void
    signature: void APPEND_CHAIN_MULTICAST(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:976,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:977,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 989
    functionName: PREPEND_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void PREPEND_CHAIN(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:998,1
    - Dst: PRESERVE_PINNED
      Src: /src/libevent/buffer.c:1010,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:1018,1
    - Dst: COPY_CHAIN
      Src: /src/libevent/buffer.c:1019,1
    - Dst: APPEND_CHAIN
      Src: /src/libevent/buffer.c:1021,1
    - Dst: RESTORE_PINNED
      Src: /src/libevent/buffer.c:1024,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1029,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1030,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1033,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - outbuf
    - inbuf
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 991
    functionDepth: 5
    functionLinenumber: 991
    functionLinenumberEnd: 1035
    functionName: evbuffer_add_buffer
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 6
    functionsReached:
    - EVBUFFER_LOCK2
    - EVBUFFER_UNLOCK2
    - RESTORE_PINNED
    - evbuffer_free_all_chains
    - COPY_CHAIN
    - PRESERVE_PINNED
    - evbuffer_invoke_callbacks_
    - APPEND_CHAIN
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_buffer(struct evbuffer *outbuf, struct evbuffer *inbuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:1044,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:1068,1
    - Dst: APPEND_CHAIN_MULTICAST
      Src: /src/libevent/buffer.c:1070,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1073,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1076,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - outbuf
    - inbuf
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1037
    functionDepth: 6
    functionLinenumber: 1037
    functionLinenumberEnd: 1078
    functionName: evbuffer_add_buffer_reference
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK2
    - EVBUFFER_UNLOCK2
    - APPEND_CHAIN_MULTICAST
    - evbuffer_free_all_chains
    - evbuffer_invoke_callbacks_
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_buffer_reference(struct evbuffer *outbuf, struct evbuffer
      *inbuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:1087,1
    - Dst: PRESERVE_PINNED
      Src: /src/libevent/buffer.c:1100,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:1108,1
    - Dst: COPY_CHAIN
      Src: /src/libevent/buffer.c:1109,1
    - Dst: PREPEND_CHAIN
      Src: /src/libevent/buffer.c:1111,1
    - Dst: RESTORE_PINNED
      Src: /src/libevent/buffer.c:1114,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1119,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1120,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - outbuf
    - inbuf
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1080
    functionDepth: 4
    functionLinenumber: 1080
    functionLinenumberEnd: 1124
    functionName: evbuffer_prepend_buffer
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK2
    - EVBUFFER_UNLOCK2
    - PREPEND_CHAIN
    - RESTORE_PINNED
    - evbuffer_free_all_chains
    - COPY_CHAIN
    - PRESERVE_PINNED
    - evbuffer_invoke_callbacks_
    linkageType: ''
    returnType: int
    signature: int evbuffer_prepend_buffer(struct evbuffer *outbuf, struct evbuffer
      *inbuf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1133,1
    - Dst: HAS_PINNED_R
      Src: /src/libevent/buffer.c:1144,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:1148,1
    - Dst: ZERO_CHAIN
      Src: /src/libevent/buffer.c:1151,1
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:1170,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1171,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:1176,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1180,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1187,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1190,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1192
    functionName: evbuffer_drain
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 8
    functionsReached:
    - EVBUFFER_LOCK
    - EVUTIL_ASSERT
    - CHAIN_PINNED_R
    - evbuffer_chain_free
    - HAS_PINNED_R
    - evbuffer_invoke_callbacks_
    - ZERO_CHAIN
    - EVBUFFER_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_drain(struct evbuffer *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1199,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/buffer.c:1200,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer.c:1202,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - data_out
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1195
    functionDepth: 4
    functionLinenumber: 1195
    functionLinenumberEnd: 1207
    functionName: evbuffer_remove
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 3
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - evbuffer_drain
    - evbuffer_copyout_from
    linkageType: ''
    returnType: int
    signature: int evbuffer_remove(struct evbuffer *buf, void *data_out, size_t datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/buffer.c:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - data_out
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1213
    functionName: evbuffer_copyout
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_copyout_from
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t evbuffer_copyout(struct evbuffer *buf, void *data_out, size_t
      datlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1226,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1257,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1265,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1269,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1270,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1272,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1278,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - buf
    - pos
    - data_out
    - datlen
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1280
    functionName: evbuffer_copyout_from
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - EVUTIL_ASSERT
    - memcpy
    linkageType: ''
    returnType: ev_ssize_t
    signature: "ev_ssize_t evbuffer_copyout_from(struct evbuffer *buf, const struct
      evbuffer_ptr *pos,\n    void *data_out, size_t datlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:1296,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/buffer.c:1313,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1323,1
    - Dst: evbuffer_free_trailing_empty_chains
      Src: /src/libevent/buffer.c:1335,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:1345,1
    - Dst: evbuffer_add
      Src: /src/libevent/buffer.c:1353,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1365,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1366,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1371,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 3
    argNames:
    - src
    - dst
    - datlen
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1285
    functionDepth: 6
    functionLinenumber: 1285
    functionLinenumberEnd: 1373
    functionName: evbuffer_remove_buffer
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 4
    functionsReached:
    - EVBUFFER_LOCK2
    - EVBUFFER_UNLOCK2
    - evbuffer_add_buffer
    - evbuffer_free_trailing_empty_chains
    - evbuffer_add
    - EVUTIL_ASSERT
    - advance_last_with_data
    - evbuffer_invoke_callbacks_
    linkageType: ''
    returnType: int
    signature: "int evbuffer_remove_buffer(struct evbuffer *src, struct evbuffer *dst,\n
      \   size_t datlen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1384,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1405,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:1407,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:1414,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:1416,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:1420,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:1434,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:1435,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1451,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:1460,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1464,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1485,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1375
    functionDepth: 3
    functionLinenumber: 1375
    functionLinenumberEnd: 1487
    functionName: evbuffer_pullup
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_LOCK
    - event_warn
    - evbuffer_chain_new_membuf
    - EVUTIL_ASSERT
    - CHAIN_SPACE_LEN
    - evbuffer_chain_free
    - CHAIN_PINNED
    - EVBUFFER_UNLOCK
    - CHAIN_SPACE_PTR
    - memcpy
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      evbuffer_pullup(struct evbuffer *buf, ev_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_readln
      Src: /src/libevent/buffer.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1497
    functionName: evbuffer_readline
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_readln
    linkageType: ''
    returnType: char
    signature: 'char *

      evbuffer_readline(struct evbuffer *buffer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/libevent/buffer.c:1506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - it
    - chr
    argTypes:
    - struct evbuffer_ptr*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1519
    functionName: evbuffer_strchr
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t evbuffer_strchr(struct evbuffer_ptr *it, const char chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/libevent/buffer.c:1532,1
    - Dst: memchr
      Src: /src/libevent/buffer.c:1533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1546
    functionName: find_eol_char
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: 'char *

      find_eol_char(char *s, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_eol_char
      Src: /src/libevent/buffer.c:1555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1568
    functionName: evbuffer_find_eol_char
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - find_eol_char
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t evbuffer_find_eol_char(struct evbuffer_ptr *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ptr
    - chrset
    argTypes:
    - struct evbuffer_ptr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1607
    functionName: evbuffer_strspn
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t evbuffer_strspn(\n\tstruct evbuffer_ptr *ptr, const char *chrset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1620
    functionName: evbuffer_getchr
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evbuffer_getchr(struct evbuffer_ptr *it)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:1633,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1639,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1642,1
    - Dst: evbuffer_find_eol_char
      Src: /src/libevent/buffer.c:1653,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1655,1
    - Dst: evbuffer_strspn
      Src: /src/libevent/buffer.c:1656,1
    - Dst: evbuffer_search
      Src: /src/libevent/buffer.c:1659,1
    - Dst: evbuffer_strchr
      Src: /src/libevent/buffer.c:1668,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1677,1
    - Dst: evbuffer_ptr_subtract
      Src: /src/libevent/buffer.c:1678,1
    - Dst: evbuffer_getchr
      Src: /src/libevent/buffer.c:1680,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1681,1
    - Dst: evbuffer_strchr
      Src: /src/libevent/buffer.c:1687,1
    - Dst: evbuffer_strchr
      Src: /src/libevent/buffer.c:1692,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1702,1
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:1705,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 4
    argNames:
    - buffer
    - start
    - eol_len_out
    - eol_style
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - size_t*
    - enum evbuffer_eol_style
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1710
    functionName: evbuffer_search_eol
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_getchr
    - PTR_NOT_FOUND
    - evbuffer_strspn
    - evbuffer_find_eol_char
    - evbuffer_ptr_subtract
    - EVBUFFER_UNLOCK
    - evbuffer_strchr
    - evbuffer_search
    - memcpy
    linkageType: ''
    returnType: struct evbuffer_ptr
    signature: "struct evbuffer_ptr evbuffer_search_eol(struct evbuffer *buffer,\n
      \   struct evbuffer_ptr *start, size_t *eol_len_out,\n    enum evbuffer_eol_style
      eol_style)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1721,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/buffer.c:1727,1
    - Dst: mm_malloc
      Src: /src/libevent/buffer.c:1732,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:1733,1
    - Dst: evbuffer_remove
      Src: /src/libevent/buffer.c:1737,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer.c:1740,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1743,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - buffer
    - n_read_out
    - eol_style
    argTypes:
    - struct evbuffer*
    - size_t*
    - enum evbuffer_eol_style
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1712
    functionDepth: 5
    functionLinenumber: 1712
    functionLinenumberEnd: 1749
    functionName: evbuffer_readln
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 4
    functionsReached:
    - EVBUFFER_LOCK
    - mm_malloc
    - event_warn
    - evbuffer_search_eol
    - evbuffer_drain
    - EVBUFFER_UNLOCK
    - evbuffer_remove
    linkageType: ''
    returnType: char
    signature: "char *\nevbuffer_readln(struct evbuffer *buffer, size_t *n_read_out,\n\t\tenum
      evbuffer_eol_style eol_style)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1763,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:1782,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1789,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1795,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:1801,1
    - Dst: evbuffer_chain_should_realign
      Src: /src/libevent/buffer.c:1802,1
    - Dst: evbuffer_chain_align
      Src: /src/libevent/buffer.c:1804,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1806,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:1823,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1828,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1838,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:1840,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1844,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1847,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 3
    argNames:
    - buf
    - data_in
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1755
    functionDepth: 6
    functionLinenumber: 1755
    functionLinenumberEnd: 1849
    functionName: evbuffer_add
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 11
    functionsReached:
    - evbuffer_chain_align
    - EVBUFFER_LOCK
    - evbuffer_chain_insert_new
    - evbuffer_chain_new_membuf
    - EVUTIL_ASSERT
    - CHAIN_PINNED
    - evbuffer_chain_should_realign
    - evbuffer_invoke_callbacks_
    - EVBUFFER_UNLOCK
    - evbuffer_chain_insert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evbuffer_add(struct evbuffer *buf, const void *data_in, size_t
      datlen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1857,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:1873,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1881,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1891,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1900,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:1912,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1921,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1924,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1929,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1932,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 3
    argNames:
    - buf
    - data
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1851
    functionDepth: 6
    functionLinenumber: 1851
    functionLinenumberEnd: 1934
    functionName: evbuffer_prepend
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_chain_insert_new
    - evbuffer_chain_new_membuf
    - EVUTIL_ASSERT
    - evbuffer_invoke_callbacks_
    - EVBUFFER_UNLOCK
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evbuffer_prepend(struct evbuffer *buf, const void *data, size_t
      datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1940,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1941,1
    - Dst: memmove
      Src: /src/libevent/buffer.c:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1944
    functionName: evbuffer_chain_align
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - memmove
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_align(struct evbuffer_chain *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - chain
    - datlen
    argTypes:
    - struct evbuffer_chain*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1958
    functionName: evbuffer_chain_should_realign
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int evbuffer_chain_should_realign(struct evbuffer_chain *chain,\n
      \   size_t datlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:1967,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:1974,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:1989,1
    - Dst: evbuffer_chain_should_realign
      Src: /src/libevent/buffer.c:2006,1
    - Dst: evbuffer_chain_align
      Src: /src/libevent/buffer.c:2007,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2019,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2024,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:2041,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:2047,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2050,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:2057,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:2062,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2066,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2067,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2067,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - buf
    - datlen
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 1962
    functionDepth: 6
    functionLinenumber: 1962
    functionLinenumberEnd: 2070
    functionName: evbuffer_expand_singlechain
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - evbuffer_chain_align
    - ASSERT_EVBUFFER_LOCKED
    - evbuffer_chain_new_membuf
    - evbuffer_chain_insert_new
    - EVUTIL_ASSERT
    - CHAIN_SPACE_LEN
    - evbuffer_chain_free
    - evbuffer_chain_should_realign
    - memcpy
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_expand_singlechain(struct evbuffer *buf, size_t datlen)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2081,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2082,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:2087,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2101,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2102,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2127,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:2129,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2144,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2150,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2157,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:2158,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2160,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:2161,1
    - Dst: ZERO_CHAIN
      Src: /src/libevent/buffer.c:2164,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 3
    argNames:
    - buf
    - datlen
    - n
    argTypes:
    - struct evbuffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2074
    functionDepth: 6
    functionLinenumber: 2074
    functionLinenumberEnd: 2181
    functionName: evbuffer_expand_fast_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 3
    functionsReached:
    - evbuffer_chain_insert_new
    - evbuffer_chain_new_membuf
    - ASSERT_EVBUFFER_LOCKED
    - EVUTIL_ASSERT
    - CHAIN_SPACE_LEN
    - evbuffer_chain_free
    - ZERO_CHAIN
    linkageType: ''
    returnType: int
    signature: int evbuffer_expand_fast_(struct evbuffer *buf, size_t datlen, int
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2188,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2189,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - datlen
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2183
    functionDepth: 7
    functionLinenumber: 2183
    functionLinenumberEnd: 2192
    functionName: evbuffer_expand
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - evbuffer_expand_singlechain
    linkageType: ''
    returnType: int
    signature: int evbuffer_expand(struct evbuffer *buf, size_t datlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2254,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2262,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2263,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2268,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2270,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:2273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - buf
    - howmuch
    - vecs
    - n_vecs_avail
    - chainp
    - exact
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct evbuffer_iovec*
    - int
    - struct evbuffer_chain***
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2245
    functionDepth: 1
    functionLinenumber: 2245
    functionLinenumberEnd: 2281
    functionName: evbuffer_read_setup_vecs_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    - CHAIN_SPACE_LEN
    - CHAIN_SPACE_PTR
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_read_setup_vecs_(struct evbuffer *buf, ev_ssize_t howmuch,\n
      \   struct evbuffer_iovec *vecs, int n_vecs_avail,\n    struct evbuffer_chain
      ***chainp, int exact)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/libevent/buffer.c:2288,1
    - Dst: ioctl
      Src: /src/libevent/buffer.c:2294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2283
    functionDepth: 0
    functionLinenumber: 2283
    functionLinenumberEnd: 2300
    functionName: get_n_bytes_readable_on_socket
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ioctlsocket
    - ioctl
    linkageType: ''
    returnType: int
    signature: int get_n_bytes_readable_on_socket(evutil_socket_t fd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2318,1
    - Dst: get_n_bytes_readable_on_socket
      Src: /src/libevent/buffer.c:2325,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer.c:2334,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer.c:2340,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer.c:2346,1
    - Dst: WSABUF_FROM_EVBUFFER_IOV
      Src: /src/libevent/buffer.c:2350,1
    - Dst: WSARecv
      Src: /src/libevent/buffer.c:2357,1
    - Dst: WSAGetLastError
      Src: /src/libevent/buffer.c:2360,1
    - Dst: read
      Src: /src/libevent/buffer.c:2370,1
    - Dst: readv
      Src: /src/libevent/buffer.c:2372,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2380,1
    - Dst: read
      Src: /src/libevent/buffer.c:2389,1
    - Dst: recv
      Src: /src/libevent/buffer.c:2391,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2409,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:2426,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:2432,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2435,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - buf
    - fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2304
    functionDepth: 7
    functionLinenumber: 2304
    functionLinenumberEnd: 2437
    functionName: evbuffer_read
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - get_n_bytes_readable_on_socket
    - evbuffer_expand_fast_
    - EVBUFFER_LOCK
    - WSAGetLastError
    - WSABUF_FROM_EVBUFFER_IOV
    - evbuffer_expand_singlechain
    - evbuffer_read_setup_vecs_
    - CHAIN_SPACE_LEN
    - advance_last_with_data
    - readv
    - evbuffer_invoke_callbacks_
    - read
    - EVBUFFER_UNLOCK
    - recv
    - WSARecv
    linkageType: ''
    returnType: int
    signature: int evbuffer_read(struct evbuffer *buf, evutil_socket_t fd, int howmuch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2451,1
    - Dst: WSASend
      Src: /src/libevent/buffer.c:2479,1
    - Dst: write
      Src: /src/libevent/buffer.c:2487,1
    - Dst: writev
      Src: /src/libevent/buffer.c:2489,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - buffer
    - fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2492
    functionName: evbuffer_write_iovec
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - write
    - writev
    - WSASend
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_write_iovec(struct evbuffer *buffer, evutil_socket_t
      fd,\n    ev_ssize_t howmuch)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:2502,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2513,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2516,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2517,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2522,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2523,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2528,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2529,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2537,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2538,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - buffer
    - dest_fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2496
    functionDepth: 1
    functionLinenumber: 2496
    functionLinenumberEnd: 2548
    functionName: evbuffer_write_sendfile
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ERR_RW_RETRIABLE
    - sendfile
    - EVBUFFER_CHAIN_EXTRA
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_write_sendfile(struct evbuffer *buffer, evutil_socket_t
      dest_fd,\n    ev_ssize_t howmuch)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2557,1
    - Dst: evbuffer_write_sendfile
      Src: /src/libevent/buffer.c:2570,1
    - Dst: evbuffer_write_iovec
      Src: /src/libevent/buffer.c:2574,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/buffer.c:2578,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2579,1
    - Dst: send
      Src: /src/libevent/buffer.c:2580,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/buffer.c:2582,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2583,1
    - Dst: write
      Src: /src/libevent/buffer.c:2584,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer.c:2592,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2595,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - buffer
    - fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2551
    functionDepth: 4
    functionLinenumber: 2551
    functionLinenumberEnd: 2597
    functionName: evbuffer_write_atmost
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - write
    - EVBUFFER_LOCK
    - EVUTIL_ASSERT
    - evbuffer_write_iovec
    - evbuffer_write_sendfile
    - evbuffer_drain
    - EVBUFFER_UNLOCK
    - evbuffer_pullup
    - send
    linkageType: ''
    returnType: int
    signature: "int evbuffer_write_atmost(struct evbuffer *buffer, evutil_socket_t
      fd,\n    ev_ssize_t howmuch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_write_atmost
      Src: /src/libevent/buffer.c:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - fd
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2599
    functionDepth: 5
    functionLinenumber: 2599
    functionLinenumberEnd: 2603
    functionName: evbuffer_write
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_write_atmost
    linkageType: ''
    returnType: int
    signature: int evbuffer_write(struct evbuffer *buffer, evutil_socket_t fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2611,1
    - Dst: evbuffer_search
      Src: /src/libevent/buffer.c:2613,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/buffer.c:2617,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - buffer
    - what
    - len
    argTypes:
    - struct evbuffer*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2605
    functionDepth: 4
    functionLinenumber: 2605
    functionLinenumberEnd: 2623
    functionName: evbuffer_find
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - evbuffer_pullup
    - EVBUFFER_LOCK
    - evbuffer_search
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      evbuffer_find(struct evbuffer *buffer, const unsigned char *what, size_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/buffer.c:2646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - pos
    - howfar
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2648
    functionName: evbuffer_ptr_subtract
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - evbuffer_ptr_set
    linkageType: ''
    returnType: int
    signature: "int evbuffer_ptr_subtract(struct evbuffer *buf, struct evbuffer_ptr
      *pos,\n    size_t howfar)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2658,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2670,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2679,1
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:2693,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2697,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - buf
    - pos
    - position
    - how
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - size_t
    - enum evbuffer_ptr_how
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2650
    functionDepth: 1
    functionLinenumber: 2650
    functionLinenumberEnd: 2700
    functionName: evbuffer_ptr_set
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - EVUTIL_ASSERT
    - PTR_NOT_FOUND
    linkageType: ''
    returnType: int
    signature: "int evbuffer_ptr_set(struct evbuffer *buf, struct evbuffer_ptr *pos,\n
      \   size_t position, enum evbuffer_ptr_how how)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2714,1
    - Dst: memcmp
      Src: /src/libevent/buffer.c:2729,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - buf
    - pos
    - mem
    - len
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2740
    functionName: evbuffer_ptr_memcmp
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_ptr_memcmp(const struct evbuffer *buf, const struct evbuffer_ptr
      *pos,\n    const char *mem, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_search_range
      Src: /src/libevent/buffer.c:2745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buffer
    - what
    - len
    - start
    argTypes:
    - struct evbuffer*
    - char*
    - size_t
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2746
    functionName: evbuffer_search
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - evbuffer_search_range
    linkageType: ''
    returnType: struct evbuffer_ptr
    signature: struct evbuffer_ptr evbuffer_search(struct evbuffer *buffer, const
      char *what, size_t len, const struct evbuffer_ptr *start)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2756,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:2759,1
    - Dst: memchr
      Src: /src/libevent/buffer.c:2779,1
    - Dst: evbuffer_ptr_memcmp
      Src: /src/libevent/buffer.c:2784,1
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:2806,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2808,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 5
    argNames:
    - buffer
    - what
    - len
    - start
    - end
    argTypes:
    - struct evbuffer*
    - char*
    - size_t
    - struct evbuffer_ptr*
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2748
    functionDepth: 2
    functionLinenumber: 2748
    functionLinenumberEnd: 2810
    functionName: evbuffer_search_range
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_LOCK
    - PTR_NOT_FOUND
    - evbuffer_ptr_memcmp
    - memchr
    - EVBUFFER_UNLOCK
    - memcpy
    linkageType: ''
    returnType: struct evbuffer_ptr
    signature: struct evbuffer_ptr evbuffer_search_range(struct evbuffer *buffer,
      const char *what, size_t len, const struct evbuffer_ptr *start, const struct
      evbuffer_ptr *end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2825,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2865,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 5
    argNames:
    - buffer
    - len
    - start_at
    - vec
    - n_vec
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct evbuffer_ptr*
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2812
    functionDepth: 1
    functionLinenumber: 2812
    functionLinenumberEnd: 2868
    functionName: evbuffer_peek
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_peek(struct evbuffer *buffer, ev_ssize_t len,\n    struct
      evbuffer_ptr *start_at,\n    struct evbuffer_iovec *vec, int n_vec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2881,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2888,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2895,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:2898,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2899,1
    - Dst: va_copy
      Src: /src/libevent/buffer.c:2904,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/buffer.c:2906,1
    - Dst: va_end
      Src: /src/libevent/buffer.c:2908,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:2920,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:2921,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2925,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2931,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - buf
    - fmt
    - ap
    argTypes:
    - struct evbuffer*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2871
    functionDepth: 7
    functionLinenumber: 2871
    functionLinenumberEnd: 2933
    functionName: evbuffer_add_vprintf
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - va_end
    - evbuffer_expand_singlechain
    - EVUTIL_ASSERT
    - CHAIN_SPACE_LEN
    - evutil_vsnprintf
    - advance_last_with_data
    - evbuffer_invoke_callbacks_
    - EVBUFFER_UNLOCK
    - CHAIN_SPACE_PTR
    - va_copy
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_vprintf(struct evbuffer *buf, const char *fmt, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2902
    functionDepth: 0
    functionLinenumber: 2902
    functionLinenumberEnd: 2903
    functionName: va_copy
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/buffer.c:2941,1
    - Dst: evbuffer_add_vprintf
      Src: /src/libevent/buffer.c:2942,1
    - Dst: va_end
      Src: /src/libevent/buffer.c:2943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - fmt
    argTypes:
    - struct evbuffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2935
    functionDepth: 8
    functionLinenumber: 2935
    functionLinenumberEnd: 2946
    functionName: evbuffer_add_printf
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 8
    functionsReached:
    - va_end
    - evbuffer_add_vprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_printf(struct evbuffer *buf, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_reference_with_offset
      Src: /src/libevent/buffer.c:2953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - outbuf
    - data
    - datlen
    - cleanupfn
    - extra
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    - evbuffer_ref_cleanup_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2948
    functionDepth: 1
    functionLinenumber: 2948
    functionLinenumberEnd: 2954
    functionName: evbuffer_add_reference
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference_with_offset
    linkageType: ''
    returnType: int
    signature: "int evbuffer_add_reference(struct evbuffer *outbuf,\n    const void
      *data, size_t datlen,\n    evbuffer_ref_cleanup_cb cleanupfn, void *extra)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:2965,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:2974,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2978,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:2982,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:2985,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:2988,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 6
    argNames:
    - outbuf
    - data
    - offset
    - datlen
    - cleanupfn
    - extra
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    - size_t
    - evbuffer_ref_cleanup_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2956
    functionDepth: 5
    functionLinenumber: 2956
    functionLinenumberEnd: 2995
    functionName: evbuffer_add_reference_with_offset
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_chain_new
    - EVBUFFER_CHAIN_EXTRA
    - evbuffer_invoke_callbacks_
    - mm_free
    - EVBUFFER_UNLOCK
    - evbuffer_chain_insert
    linkageType: ''
    returnType: int
    signature: "int evbuffer_add_reference_with_offset(struct evbuffer *outbuf, const
      void *data,\n\tsize_t offset, size_t datlen, evbuffer_ref_cleanup_cb cleanupfn,\n\tvoid
      *extra)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer.c:3005,1
    - Dst: evutil_fd_filesize
      Src: /src/libevent/buffer.c:3015,1
    - Dst: "offset < 0 || length < 0 ||\n\t    ((ev_uint64_t)length > EVBUFFER_CHAIN_MAX)
        ||\n\t    (ev_uint64_t)offset >"
      Src: /src/libevent/buffer.c:3021,1
    - Dst: evbuffer_file_segment_materialize
      Src: /src/libevent/buffer.c:3033,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/buffer.c:3040,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3044,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - fd
    - offset
    - length
    - flags
    argTypes:
    - int
    - ev_off_t
    - ev_off_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3000
    functionDepth: 1
    functionLinenumber: 3000
    functionLinenumberEnd: 3046
    functionName: evbuffer_file_segment_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - "offset < 0 || length < 0 ||\n\t    ((ev_uint64_t)length > EVBUFFER_CHAIN_MAX)
      ||\n\t    (ev_uint64_t)offset >"
    - evbuffer_file_segment_materialize
    - mm_free
    - EVTHREAD_ALLOC_LOCK
    - evutil_fd_filesize
    linkageType: ''
    returnType: struct evbuffer_file_segment
    signature: "struct evbuffer_file_segment *\nevbuffer_file_segment_new(\n\tint
      fd, ev_off_t offset, ev_off_t length, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/libevent/buffer.c:3053,1
    - Dst: sysconf
      Src: /src/libevent/buffer.c:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3049
    functionDepth: 0
    functionLinenumber: 3049
    functionLinenumberEnd: 3059
    functionName: get_page_size
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: long
    signature: long get_page_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:3204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seg
    - cb
    - arg
    argTypes:
    - struct evbuffer_file_segment*
    - evbuffer_file_segment_cleanup_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3201
    functionDepth: 1
    functionLinenumber: 3201
    functionLinenumberEnd: 3207
    functionName: evbuffer_file_segment_add_cleanup_cb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void evbuffer_file_segment_add_cleanup_cb(struct evbuffer_file_segment
      *seg,\n\tevbuffer_file_segment_cleanup_cb cb, void* arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/buffer.c:3213,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3215,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:3218,1
    - Dst: CloseHandle
      Src: /src/libevent/buffer.c:3222,1
    - Dst: get_page_size
      Src: /src/libevent/buffer.c:3225,1
    - Dst: munmap
      Src: /src/libevent/buffer.c:3226,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:3227,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3230,1
    - Dst: close
      Src: /src/libevent/buffer.c:3234,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/buffer.c:3244,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - seg
    argTypes:
    - struct evbuffer_file_segment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3209
    functionDepth: 1
    functionLinenumber: 3209
    functionLinenumberEnd: 3246
    functionName: evbuffer_file_segment_free
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVLOCK_UNLOCK
    - event_warn
    - CloseHandle
    - get_page_size
    - EVUTIL_ASSERT
    - EVLOCK_LOCK
    - EVTHREAD_FREE_LOCK
    - close
    - mm_free
    - munmap
    linkageType: ''
    returnType: void
    signature: void evbuffer_file_segment_free(struct evbuffer_file_segment *seg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3256,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/buffer.c:3257,1
    - Dst: evbuffer_file_segment_materialize
      Src: /src/libevent/buffer.c:3261,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3262,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3266,1
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:3281,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:3284,1
    - Dst: memset
      Src: /src/libevent/buffer.c:3299,1
    - Dst: GetSystemInfo
      Src: /src/libevent/buffer.c:3300,1
    - Dst: MapViewOfFile
      Src: /src/libevent/buffer.c:3304,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3311,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/buffer.c:3329,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3331,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:3334,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:3336,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3338,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3342,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/buffer.c:3343,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 4
    argNames:
    - buf
    - seg
    - offset
    - length
    argTypes:
    - struct evbuffer*
    - struct evbuffer_file_segment*
    - ev_off_t
    - ev_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3345
      start: 3248
    functionDepth: 5
    functionLinenumber: 3248
    functionLinenumberEnd: 3345
    functionName: evbuffer_add_file_segment
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_chain_new
    - EVLOCK_UNLOCK
    - EVBUFFER_CHAIN_EXTRA
    - MapViewOfFile
    - evbuffer_file_segment_free
    - EVLOCK_LOCK
    - evbuffer_file_segment_materialize
    - evbuffer_invoke_callbacks_
    - mm_free
    - EVBUFFER_UNLOCK
    - evbuffer_chain_insert
    - memset
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: "int evbuffer_add_file_segment(struct evbuffer *buf,\n    struct evbuffer_file_segment
      *seg, ev_off_t offset, ev_off_t length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_file_segment_new
      Src: /src/libevent/buffer.c:3354,1
    - Dst: evbuffer_add_file_segment
      Src: /src/libevent/buffer.c:3357,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/buffer.c:3359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - buf
    - fd
    - offset
    - length
    argTypes:
    - struct evbuffer*
    - int
    - ev_off_t
    - ev_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3361
      start: 3347
    functionDepth: 6
    functionLinenumber: 3347
    functionLinenumberEnd: 3361
    functionName: evbuffer_add_file
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_file_segment_new
    - evbuffer_add_file_segment
    - evbuffer_file_segment_free
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_file(struct evbuffer *buf, int fd, ev_off_t offset,
      ev_off_t length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3366,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/buffer.c:3368,1
    - Dst: evbuffer_remove_all_callbacks
      Src: /src/libevent/buffer.c:3369,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/buffer.c:3373,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3375,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - buffer
    - cb
    - cbarg
    argTypes:
    - struct evbuffer*
    - evbuffer_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3363
    functionDepth: 2
    functionLinenumber: 3363
    functionLinenumberEnd: 3383
    functionName: evbuffer_setcb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    - LIST_EMPTY
    - evbuffer_remove_all_callbacks
    - EVBUFFER_UNLOCK
    - evbuffer_add_cb
    linkageType: ''
    returnType: int
    signature: int evbuffer_setcb(struct evbuffer *buffer, evbuffer_cb cb, void *cbarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer.c:3389,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3391,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/buffer.c:3395,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - buffer
    - cb
    - cbarg
    argTypes:
    - struct evbuffer*
    - evbuffer_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3385
    functionDepth: 1
    functionLinenumber: 3385
    functionLinenumberEnd: 3398
    functionName: evbuffer_add_cb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVBUFFER_UNLOCK
    - LIST_INSERT_HEAD
    - EVBUFFER_LOCK
    - mm_calloc
    linkageType: ''
    returnType: struct evbuffer_cb_entry
    signature: 'struct evbuffer_cb_entry *

      evbuffer_add_cb(struct evbuffer *buffer, evbuffer_cb_func cb, void *cbarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3404,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/buffer.c:3405,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3406,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - ent
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3400
    functionDepth: 1
    functionLinenumber: 3400
    functionLinenumberEnd: 3409
    functionName: evbuffer_remove_cb_entry
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - LIST_REMOVE
    - mm_free
    linkageType: ''
    returnType: int
    signature: "int evbuffer_remove_cb_entry(struct evbuffer *buffer,\n\t\t\t struct
      evbuffer_cb_entry *ent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3416,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/buffer.c:3417,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/buffer.c:3419,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buffer
    - cb
    - cbarg
    argTypes:
    - struct evbuffer*
    - evbuffer_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3411
    functionDepth: 2
    functionLinenumber: 3411
    functionLinenumberEnd: 3426
    functionName: evbuffer_remove_cb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - evbuffer_remove_cb_entry
    - EVBUFFER_LOCK
    - EVBUFFER_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_remove_cb(struct evbuffer *buffer, evbuffer_cb_func cb,
      void *cbarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3434,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - cb
    - flags
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3428
    functionDepth: 1
    functionLinenumber: 3428
    functionLinenumberEnd: 3438
    functionName: evbuffer_cb_set_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_cb_set_flags(struct evbuffer *buffer,\n\t\t      struct
      evbuffer_cb_entry *cb, ev_uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3446,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - cb
    - flags
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3440
    functionDepth: 1
    functionLinenumber: 3440
    functionLinenumberEnd: 3450
    functionName: evbuffer_cb_clear_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_cb_clear_flags(struct evbuffer *buffer,\n\t\t      struct
      evbuffer_cb_entry *cb, ev_uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3455,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - start
    argTypes:
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3462
      start: 3452
    functionDepth: 1
    functionLinenumber: 3452
    functionLinenumberEnd: 3462
    functionName: evbuffer_freeze
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 5
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_freeze(struct evbuffer *buffer, int start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3467,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - start
    argTypes:
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3464
    functionDepth: 1
    functionLinenumber: 3464
    functionLinenumberEnd: 3474
    functionName: evbuffer_unfreeze
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 6
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_unfreeze(struct evbuffer *buffer, int start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/buffer.c:3481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - cb
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3477
    functionDepth: 2
    functionLinenumber: 3477
    functionLinenumberEnd: 3484
    functionName: evbuffer_cb_suspend
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void evbuffer_cb_suspend(struct evbuffer *buffer, struct evbuffer_cb_entry
      *cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct evbuffer_cb_entry*::cb
      Src: /src/libevent/buffer.c:3496,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/buffer.c:3496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - buffer
    - cb
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3486
    functionDepth: 2
    functionLinenumber: 3486
    functionLinenumberEnd: 3499
    functionName: evbuffer_cb_unsuspend
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    - struct evbuffer_cb_entry*::cb
    linkageType: ''
    returnType: void
    signature: void evbuffer_cb_unsuspend(struct evbuffer *buffer, struct evbuffer_cb_entry
      *cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3507,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - buffer
    - cbs
    - max_cbs
    argTypes:
    - struct evbuffer*
    - struct event_callback**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3502
    functionDepth: 1
    functionLinenumber: 3502
    functionLinenumberEnd: 3519
    functionName: evbuffer_get_callbacks_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_get_callbacks_(struct evbuffer *buffer, struct event_callback
      **cbs,\n    int max_cbs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_pthread.c:52,1
    - Dst: pthread_mutex_init
      Src: /src/libevent/evthread_pthread.c:57,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: evthread_posix_lock_alloc
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - mm_malloc
    - mm_free
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_posix_lock_alloc(unsigned locktype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/libevent/evthread_pthread.c:68,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: evthread_posix_lock_free
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evthread_posix_lock_free(void *lock_, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/libevent/evthread_pthread.c:77,1
    - Dst: pthread_mutex_lock
      Src: /src/libevent/evthread_pthread.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: evthread_posix_lock
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_trylock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int evthread_posix_lock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: evthread_posix_unlock
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int evthread_posix_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evthread_pthread.c:101,1
    - Dst: pthread_self
      Src: /src/libevent/evthread_pthread.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: evthread_posix_get_id
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - memset
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long evthread_posix_get_id(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_pthread.c:110,1
    - Dst: pthread_cond_init
      Src: /src/libevent/evthread_pthread.c:113,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - condflags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: evthread_posix_cond_alloc
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - pthread_cond_init
    - mm_free
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_posix_cond_alloc(unsigned condflags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_destroy
      Src: /src/libevent/evthread_pthread.c:124,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cond_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: evthread_posix_cond_free
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_destroy
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evthread_posix_cond_free(void *cond_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_broadcast
      Src: /src/libevent/evthread_pthread.c:134,1
    - Dst: pthread_cond_signal
      Src: /src/libevent/evthread_pthread.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cond_
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: evthread_posix_cond_signal
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - pthread_cond_broadcast
    linkageType: ''
    returnType: int
    signature: int evthread_posix_cond_signal(void *cond_, int broadcast)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evthread_pthread.c:150,1
    - Dst: evutil_timeradd
      Src: /src/libevent/evthread_pthread.c:151,1
    - Dst: pthread_cond_timedwait
      Src: /src/libevent/evthread_pthread.c:154,1
    - Dst: pthread_cond_wait
      Src: /src/libevent/evthread_pthread.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: evthread_posix_cond_wait
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - pthread_cond_timedwait
    - pthread_cond_wait
    - evutil_timeradd
    linkageType: ''
    returnType: int
    signature: int evthread_posix_cond_wait(void *cond_, void *lock_, const struct
      timeval *tv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libevent/evthread_pthread.c:186,1
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:188,1
    - Dst: pthread_mutexattr_init
      Src: /src/libevent/evthread_pthread.c:192,1
    - Dst: pthread_mutexattr_init
      Src: /src/libevent/evthread_pthread.c:196,1
    - Dst: pthread_mutexattr_settype
      Src: /src/libevent/evthread_pthread.c:198,1
    - Dst: pthread_mutexattr_setprotocol
      Src: /src/libevent/evthread_pthread.c:204,1
    - Dst: pthread_mutexattr_setprotocol
      Src: /src/libevent/evthread_pthread.c:206,1
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/evthread_pthread.c:213,1
    - Dst: evthread_set_condition_callbacks
      Src: /src/libevent/evthread_pthread.c:214,1
    - Dst: evthread_set_id_callback
      Src: /src/libevent/evthread_pthread.c:215,1
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:218,1
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:221,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 223
    functionName: evthread_use_pthreads_with_flags
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutexattr_setprotocol
    - evthread_set_condition_callbacks
    - pthread_mutexattr_init
    - pthread_mutex_lock
    - pthread_mutexattr_settype
    - evthread_set_lock_callbacks
    - evthread_set_id_callback
    linkageType: ''
    returnType: int
    signature: int evthread_use_pthreads_with_flags(int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_pthreads_with_flags
      Src: /src/libevent/evthread_pthread.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: evthread_use_pthreads
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - evthread_use_pthreads_with_flags
    linkageType: ''
    returnType: int
    signature: int evthread_use_pthreads(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/bufferevent_openssl.c:70,1
    - Dst: ERR_get_error
      Src: /src/libevent/bufferevent_openssl.c:72,1
    - Dst: ERR_reason_error_string
      Src: /src/libevent/bufferevent_openssl.c:73,1
    - Dst: ERR_lib_error_string
      Src: /src/libevent/bufferevent_openssl.c:74,1
    - Dst: ERR_func_error_string
      Src: /src/libevent/bufferevent_openssl.c:75,1
    - Dst: printf
      Src: /src/libevent/bufferevent_openssl.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - printf
    - ERR_reason_error_string
    - ERR_lib_error_string
    - ERR_get_error
    - ERR_func_error_string
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/libevent/bufferevent_openssl.c:91,1
    - Dst: BIO_set_data
      Src: /src/libevent/bufferevent_openssl.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: bio_bufferevent_new
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_new(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_shutdown
      Src: /src/libevent/bufferevent_openssl.c:102,1
    - Dst: BIO_get_init
      Src: /src/libevent/bufferevent_openssl.c:103,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:103,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_openssl.c:104,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:104,1
    - Dst: BIO_free
      Src: /src/libevent/bufferevent_openssl.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: bio_bufferevent_free
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_shutdown
    - BIO_get_data
    - BIO_get_init
    - BIO_free
    - bufferevent_free
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_free(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/libevent/bufferevent_openssl.c:117,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:121,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/bufferevent_openssl.c:124,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:124,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:125,1
    - Dst: BIO_set_retry_read
      Src: /src/libevent/bufferevent_openssl.c:127,1
    - Dst: evbuffer_remove
      Src: /src/libevent/bufferevent_openssl.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - b
    - out
    - outlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 134
    functionName: bio_bufferevent_read
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_get_data
    - bufferevent_get_input
    - evbuffer_get_length
    - evbuffer_remove
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_read(BIO *b, char *out, int outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:140,1
    - Dst: BIO_clear_retry_flags
      Src: /src/libevent/bufferevent_openssl.c:144,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/bufferevent_openssl.c:149,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:150,1
    - Dst: BIO_set_retry_write
      Src: /src/libevent/bufferevent_openssl.c:157,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_openssl.c:163,1
    - Dst: evbuffer_add
      Src: /src/libevent/bufferevent_openssl.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - b
    - in
    - inlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: bio_bufferevent_write
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_set_retry_write
    - evbuffer_add
    - EVUTIL_ASSERT
    - BIO_get_data
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_write(BIO *b, const char *in, int inlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:172,1
    - Dst: BIO_get_shutdown
      Src: /src/libevent/bufferevent_openssl.c:177,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/bufferevent_openssl.c:180,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:183,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/bufferevent_openssl.c:183,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:186,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/bufferevent_openssl.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 199
    functionName: bio_bufferevent_ctrl
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_shutdown
    - BIO_set_shutdown
    - BIO_get_data
    - bufferevent_get_input
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: long
    signature: long bio_bufferevent_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_bufferevent_write
      Src: /src/libevent/bufferevent_openssl.c:205,1
    - Dst: strlen
      Src: /src/libevent/bufferevent_openssl.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - s
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: bio_bufferevent_puts
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bio_bufferevent_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_puts(BIO *b, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/libevent/bufferevent_openssl.c:216,1
    - Dst: BIO_meth_set_write
      Src: /src/libevent/bufferevent_openssl.c:219,1
    - Dst: BIO_meth_set_read
      Src: /src/libevent/bufferevent_openssl.c:220,1
    - Dst: BIO_meth_set_puts
      Src: /src/libevent/bufferevent_openssl.c:221,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/libevent/bufferevent_openssl.c:222,1
    - Dst: BIO_meth_set_create
      Src: /src/libevent/bufferevent_openssl.c:223,1
    - Dst: BIO_meth_set_destroy
      Src: /src/libevent/bufferevent_openssl.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: BIO_s_bufferevent
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_read
    - BIO_meth_set_write
    - BIO_meth_set_puts
    - BIO_meth_set_ctrl
    - BIO_meth_set_create
    - BIO_meth_set_destroy
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: 'BIO_METHOD *

      BIO_s_bufferevent(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/libevent/bufferevent_openssl.c:237,1
    - Dst: BIO_s_bufferevent
      Src: /src/libevent/bufferevent_openssl.c:237,1
    - Dst: BIO_set_init
      Src: /src/libevent/bufferevent_openssl.c:239,1
    - Dst: BIO_set_data
      Src: /src/libevent/bufferevent_openssl.c:240,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/bufferevent_openssl.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bufferevent
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 245
    functionName: BIO_new_bufferevent
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_shutdown
    - BIO_new
    - BIO_s_bufferevent
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: BIO
    signature: 'BIO *

      BIO_new_bufferevent(struct bufferevent *bufferevent)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_shutdown
      Src: /src/libevent/bufferevent_openssl.c:257,1
    - Dst: ERR_peek_error
      Src: /src/libevent/bufferevent_openssl.c:264,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:266,1
    - Dst: SSL_is_init_finished
      Src: /src/libevent/bufferevent_openssl.c:270,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:272,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:276,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_openssl.c:285,1
    - Dst: ERR_get_error
      Src: /src/libevent/bufferevent_openssl.c:289,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:290,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_openssl.c:296,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_openssl.c:297,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_openssl.c:301,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 4
    argNames:
    - bev_ssl
    - when
    - errcode
    - ret
    argTypes:
    - struct bufferevent_ssl*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 302
    functionName: conn_closed
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_is_init_finished
    - bufferevent_ssl_stop_writing
    - bufferevent_ssl_put_error
    - ERR_peek_error
    - bufferevent_run_eventcb_
    - event_warnx
    - ERR_get_error
    - SSL_get_shutdown
    - bufferevent_ssl_stop_reading
    linkageType: ''
    returnType: void
    signature: void conn_closed(struct bufferevent_ssl *bev_ssl, int when, int errcode,
      int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:309,1
    - Dst: BIO_number_written
      Src: /src/libevent/bufferevent_openssl.c:310,1
    - Dst: SSL_get_rbio
      Src: /src/libevent/bufferevent_openssl.c:311,1
    - Dst: BIO_number_read
      Src: /src/libevent/bufferevent_openssl.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: init_bio_counts
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_rbio
    - BIO_number_read
    - BIO_number_written
    - SSL_get_wbio
    linkageType: ''
    returnType: void
    signature: void init_bio_counts(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_number_written
      Src: /src/libevent/bufferevent_openssl.c:318,1
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:318,1
    - Dst: BIO_number_read
      Src: /src/libevent/bufferevent_openssl.c:319,1
    - Dst: SSL_get_rbio
      Src: /src/libevent/bufferevent_openssl.c:319,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_openssl.c:324,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_openssl.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 329
    functionName: decrement_buckets
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_decrement_write_buckets_
    - SSL_get_rbio
    - BIO_number_written
    - BIO_number_read
    - SSL_get_wbio
    - bufferevent_decrement_read_buckets_
    linkageType: ''
    returnType: void
    signature: void decrement_buckets(struct bufferevent_ssl *bev_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_mode
      Src: /src/libevent/bufferevent_openssl.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 339
    functionName: SSL_init
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_mode
    linkageType: ''
    returnType: void
    signature: 'void *

      SSL_init(void *ssl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/libevent/bufferevent_openssl.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: SSL_context_free
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_free
    linkageType: ''
    returnType: void
    signature: void SSL_context_free(void *ssl, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: SSL_handshake_is_ok
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_handshake_is_ok(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: SSL_is_want_read
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_is_want_read(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: SSL_is_want_write
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_is_want_write(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_read
      Src: /src/libevent/bufferevent_openssl.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: openssl_read
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int openssl_read(void *ssl, unsigned char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_write
      Src: /src/libevent/bufferevent_openssl.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: openssl_write
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_write
    linkageType: ''
    returnType: int
    signature: int openssl_write(void *ssl, const unsigned char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:383,1
    - Dst: BIO_get_fd
      Src: /src/libevent/bufferevent_openssl.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: be_openssl_get_fd
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_fd
    - SSL_get_wbio
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t be_openssl_get_fd(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_socket
      Src: /src/libevent/bufferevent_openssl.c:394,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:395,1
    - Dst: BIO_new_bufferevent
      Src: /src/libevent/bufferevent_openssl.c:398,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 403
    functionName: be_openssl_bio_set_fd
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_new_bufferevent
    - SSL_set_bio
    - BIO_new_socket
    linkageType: ''
    returnType: int
    signature: int be_openssl_bio_set_fd(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_pending
      Src: /src/libevent/bufferevent_openssl.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: SSL_pending_wrap
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_pending
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_pending_wrap(void *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_bufferevent
      Src: /src/libevent/bufferevent_openssl.c:447,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:450,1
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_openssl.c:452,1
    - Dst: SSL_free
      Src: /src/libevent/bufferevent_openssl.c:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - base
    - underlying
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - SSL*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 460
    functionName: bufferevent_openssl_filter_new
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_free
    - bufferevent_ssl_new_impl
    - SSL_set_bio
    - BIO_new_bufferevent
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_openssl_filter_new(struct event_base
      *base,\n    struct bufferevent *underlying,\n    SSL *ssl,\n    enum bufferevent_ssl_state
      state,\n    int options)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:470,1
    - Dst: BIO_get_fd
      Src: /src/libevent/bufferevent_openssl.c:474,1
    - Dst: BIO_set_close
      Src: /src/libevent/bufferevent_openssl.c:488,1
    - Dst: BIO_new_socket
      Src: /src/libevent/bufferevent_openssl.c:493,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:494,1
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_openssl.c:500,1
    - Dst: SSL_free
      Src: /src/libevent/bufferevent_openssl.c:505,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - base
    - fd
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - SSL*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 507
    functionName: bufferevent_openssl_socket_new
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_bio
    - BIO_set_close
    - SSL_free
    - bufferevent_ssl_new_impl
    - SSL_get_wbio
    - BIO_get_fd
    - BIO_new_socket
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_openssl_socket_new(struct event_base
      *base,\n    evutil_socket_t fd,\n    SSL *ssl,\n    enum bufferevent_ssl_state
      state,\n    int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_renegotiate_impl
      Src: /src/libevent/bufferevent_openssl.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: bufferevent_ssl_renegotiate
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_renegotiate_impl
    linkageType: ''
    returnType: int
    signature: int bufferevent_ssl_renegotiate(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_openssl.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: bufferevent_openssl_get_ssl
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: SSL
    signature: 'SSL *

      bufferevent_openssl_get_ssl(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_get_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_openssl.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: bufferevent_openssl_get_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_get_allow_dirty_shutdown
    linkageType: ''
    returnType: int
    signature: int bufferevent_openssl_get_allow_dirty_shutdown(struct bufferevent
      *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_openssl.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - allow_dirty_shutdown
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: bufferevent_openssl_set_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_set_allow_dirty_shutdown
    linkageType: ''
    returnType: void
    signature: "void bufferevent_openssl_set_allow_dirty_shutdown(\n\tstruct bufferevent
      *bev, int allow_dirty_shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_openssl.c:540,1
    - Dst: bufferevent_get_ssl_error
      Src: /src/libevent/bufferevent_openssl.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 544
    functionName: bufferevent_get_openssl_error
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_ssl_error
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bufferevent_get_openssl_error(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - which
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: event_enable_debug_logging
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_enable_debug_logging(ev_uint32_t which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - event_fatal_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: event_set_fatal_callback
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_set_fatal_callback(event_fatal_cb cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatal_fn
      Src: /src/libevent/log.c:93,1
    - Dst: exit
      Src: /src/libevent/log.c:94,1
    - Dst: abort
      Src: /src/libevent/log.c:96,1
    - Dst: exit
      Src: /src/libevent/log.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: event_exit
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - fatal_fn
    - abort
    - exit
    linkageType: ''
    returnType: void
    signature: void event_exit(int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:106,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:107,1
    - Dst: strerror
      Src: /src/libevent/log.c:107,1
    - Dst: va_end
      Src: /src/libevent/log.c:108,1
    - Dst: event_exit
      Src: /src/libevent/log.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: event_err
    functionSourceFile: /src/libevent/log.c
    functionUses: 1
    functionsReached:
    - event_exit
    - event_logv_
    - va_end
    - va_start
    - strerror
    linkageType: ''
    returnType: void
    signature: void event_err(int eval, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:117,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:118,1
    - Dst: strerror
      Src: /src/libevent/log.c:118,1
    - Dst: va_end
      Src: /src/libevent/log.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: event_warn
    functionSourceFile: /src/libevent/log.c
    functionUses: 44
    functionsReached:
    - strerror
    - event_logv_
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_warn(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_geterror
      Src: /src/libevent/log.c:126,1
    - Dst: va_start
      Src: /src/libevent/log.c:128,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:129,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/log.c:129,1
    - Dst: va_end
      Src: /src/libevent/log.c:130,1
    - Dst: event_exit
      Src: /src/libevent/log.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - eval
    - sock
    - fmt
    argTypes:
    - int
    - evutil_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: event_sock_err
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - event_exit
    - event_logv_
    - va_end
    - va_start
    - evutil_socket_error_to_string
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void event_sock_err(int eval, evutil_socket_t sock, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_geterror
      Src: /src/libevent/log.c:138,1
    - Dst: va_start
      Src: /src/libevent/log.c:140,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:141,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/log.c:141,1
    - Dst: va_end
      Src: /src/libevent/log.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sock
    - fmt
    argTypes:
    - evutil_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: event_sock_warn
    functionSourceFile: /src/libevent/log.c
    functionUses: 7
    functionsReached:
    - event_logv_
    - va_end
    - va_start
    - evutil_socket_error_to_string
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void event_sock_warn(evutil_socket_t sock, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:150,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:151,1
    - Dst: va_end
      Src: /src/libevent/log.c:152,1
    - Dst: event_exit
      Src: /src/libevent/log.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: event_errx
    functionSourceFile: /src/libevent/log.c
    functionUses: 4
    functionsReached:
    - event_exit
    - event_logv_
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_errx(int eval, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:161,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:162,1
    - Dst: va_end
      Src: /src/libevent/log.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: event_warnx
    functionSourceFile: /src/libevent/log.c
    functionUses: 13
    functionsReached:
    - event_logv_
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_warnx(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:171,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:172,1
    - Dst: va_end
      Src: /src/libevent/log.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: event_msgx
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - event_logv_
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_msgx(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:181,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:182,1
    - Dst: va_end
      Src: /src/libevent/log.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: event_debugx_
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - event_logv_
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_debugx_(const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_get_logging_mask_
      Src: /src/libevent/log.c:192,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/log.c:196,1
    - Dst: strlen
      Src: /src/libevent/log.c:201,1
    - Dst: evutil_snprintf
      Src: /src/libevent/log.c:203,1
    - Dst: event_log
      Src: /src/libevent/log.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - severity
    - errstr
    - fmt
    - ap
    argTypes:
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: event_logv_
    functionSourceFile: /src/libevent/log.c
    functionUses: 9
    functionsReached:
    - event_debug_get_logging_mask_
    - evutil_vsnprintf
    - strlen
    - evutil_snprintf
    - event_log
    linkageType: ''
    returnType: void
    signature: void event_logv_(int severity, const char *errstr, const char *fmt,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - event_log_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: event_set_log_callback
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_set_log_callback(event_log_cb cb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_fn
      Src: /src/libevent/log.c:222,1
    - Dst: fprintf
      Src: /src/libevent/log.c:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - severity
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 244
    functionName: event_log
    functionSourceFile: /src/libevent/log.c
    functionUses: 1
    functionsReached:
    - fprintf
    - log_fn
    linkageType: ''
    returnType: void
    signature: void event_log(int severity, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: arc4_init
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arc4_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dat
    - datlen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: arc4_addrandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arc4_addrandom(const unsigned char *dat, int datlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/arc4random.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: read_all
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_all(int fd, unsigned char *buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BCryptGenRandom
      Src: /src/libevent/arc4random.c:157,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:160,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: arc4_seed_win32
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - BCryptGenRandom
    - arc4_addrandom
    - evutil_memclear_
    linkageType: ''
    returnType: int
    signature: int arc4_seed_win32(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getrandom
      Src: /src/libevent/arc4random.c:176,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:180,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 183
    functionName: arc4_seed_getrandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_addrandom
    - evutil_memclear_
    - getrandom
    linkageType: ''
    returnType: int
    signature: int arc4_seed_getrandom(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/arc4random.c:201,1
    - Dst: sysctl
      Src: /src/libevent/arc4random.c:204,1
    - Dst: sysctl
      Src: /src/libevent/arc4random.c:209,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:220,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 223
    functionName: arc4_seed_sysctl_bsd
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_addrandom
    - evutil_memclear_
    - memset
    - sysctl
    linkageType: ''
    returnType: int
    signature: int arc4_seed_sysctl_bsd(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/arc4random.c:241,1
    - Dst: read
      Src: /src/libevent/arc4random.c:244,1
    - Dst: close
      Src: /src/libevent/arc4random.c:245,1
    - Dst: memset
      Src: /src/libevent/arc4random.c:248,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/arc4random.c:250,1
    - Dst: evutil_hex_char_to_int_
      Src: /src/libevent/arc4random.c:251,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:262,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:265,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 268
    functionName: arc4_seed_proc_sys_kernel_random_uuid
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - evutil_memclear_
    - arc4_addrandom
    - evutil_open_closeonexec_
    - evutil_hex_char_to_int_
    - EVUTIL_ISXDIGIT_
    - close
    - read
    - memset
    linkageType: ''
    returnType: int
    signature: int arc4_seed_proc_sys_kernel_random_uuid(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/arc4random.c:281,1
    - Dst: read_all
      Src: /src/libevent/arc4random.c:284,1
    - Dst: close
      Src: /src/libevent/arc4random.c:285,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:288,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 291
    functionName: arc4_seed_urandom_helper_
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - read_all
    - evutil_memclear_
    - arc4_addrandom
    - evutil_open_closeonexec_
    - close
    linkageType: ''
    returnType: int
    signature: int arc4_seed_urandom_helper_(const char *fname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arc4_seed_urandom_helper_
      Src: /src/libevent/arc4random.c:302,1
    - Dst: arc4_seed_urandom_helper_
      Src: /src/libevent/arc4random.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 311
    functionName: arc4_seed_urandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_seed_urandom_helper_
    linkageType: ''
    returnType: int
    signature: int arc4_seed_urandom(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: arc4_seed_win32
      Src: /src/libevent/arc4random.c:322,1
    - Dst: arc4_seed_getrandom
      Src: /src/libevent/arc4random.c:326,1
    - Dst: arc4_seed_urandom
      Src: /src/libevent/arc4random.c:330,1
    - Dst: arc4_seed_proc_sys_kernel_random_uuid
      Src: /src/libevent/arc4random.c:335,1
    - Dst: arc4_seed_sysctl_bsd
      Src: /src/libevent/arc4random.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 343
    functionName: arc4_seed
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_seed_sysctl_bsd
    - arc4_seed_win32
    - arc4_seed_getrandom
    - arc4_seed_proc_sys_kernel_random_uuid
    - arc4_seed_urandom
    linkageType: ''
    returnType: int
    signature: int arc4_seed(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arc4_init
      Src: /src/libevent/arc4random.c:354,1
    - Dst: arc4_seed
      Src: /src/libevent/arc4random.c:358,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:380,1
    - Dst: arc4_getword
      Src: /src/libevent/arc4random.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 387
    functionName: arc4_stir
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_init
    - arc4_getbyte
    - arc4_seed
    - arc4_getword
    linkageType: ''
    returnType: int
    signature: int arc4_stir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/libevent/arc4random.c:393,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 390
    functionDepth: 6
    functionLinenumber: 390
    functionLinenumberEnd: 400
    functionName: arc4_stir_if_needed
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_stir
    - getpid
    linkageType: ''
    returnType: void
    signature: void arc4_stir_if_needed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 414
    functionName: arc4_getbyte
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char arc4_getbyte(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:421,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:422,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:423,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 427
    functionName: arc4_getword
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 1
    functionsReached:
    - arc4_getbyte
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arc4_getword(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:434,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:435,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 438
    functionName: arc4random_stir
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - ARC4_LOCK_
    - arc4_stir
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: ARC4RANDOM_EXPORT arc4random_stir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:446,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:448,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:454,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dat
    - datlen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 442
    functionDepth: 6
    functionLinenumber: 442
    functionLinenumberEnd: 457
    functionName: arc4random_addrandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_addrandom
    - ARC4_LOCK_
    - arc4_stir
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: ARC4RANDOM_EXPORT arc4random_addrandom(const unsigned char *dat, int
      datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:465,1
    - Dst: arc4_stir_if_needed
      Src: /src/libevent/arc4random.c:467,1
    - Dst: arc4_getword
      Src: /src/libevent/arc4random.c:468,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 461
    functionDepth: 7
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: ARC4RANDOM_UINT32::arc4random
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - ARC4_LOCK_
    - arc4_stir_if_needed
    - arc4_getword
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: 'ARC4RANDOM_EXPORT ARC4RANDOM_UINT32

      arc4random(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:479,1
    - Dst: arc4_stir_if_needed
      Src: /src/libevent/arc4random.c:480,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:483,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:484,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf_
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 7
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: arc4random_buf
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_stir_if_needed
    - ARC4_LOCK_
    - arc4_stir
    - ARC4_UNLOCK_
    - arc4_getbyte
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: ARC4RANDOM_EXPORT arc4random_buf(void *buf_, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arc4random
      Src: /src/libevent/arc4random.c:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - upper_bound
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 525
    functionName: arc4random_uniform
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4random
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT unsigned
    signature: ARC4RANDOM_EXPORT unsigned arc4random_uniform(unsigned int upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: ev_token_bucket_decrement_read
    functionSourceFile: /src/libevent/ratelim-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ev_token_bucket_decrement_read(b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: ev_token_bucket_decrement_write
    functionSourceFile: /src/libevent/ratelim-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ev_token_bucket_decrement_write(b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_async.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: be_async_run_eventcb
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void be_async_run_eventcb(struct bufferevent *bev, short what, int
      options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_async.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: be_async_trigger_nolock
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_trigger_nolock_
    linkageType: ''
    returnType: void
    signature: void be_async_trigger_nolock(struct bufferevent *bev, short what, int
      options)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: fatal_error
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fatal_error(int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:129,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: upcast
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 13
    functionsReached:
    - EVUTIL_UPCAST
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:139,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:140,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eo
    argTypes:
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: upcast_connect
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - EVUTIL_ASSERT
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast_connect(struct event_overlapped *eo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:148,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:149,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eo
    argTypes:
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: upcast_read
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - EVUTIL_ASSERT
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast_read(struct event_overlapped *eo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:157,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:158,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eo
    argTypes:
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: upcast_write
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - EVUTIL_ASSERT
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast_write(struct event_overlapped *eo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: bev_async_del_write
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_del_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_del_write(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: bev_async_del_read
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_del_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_del_read(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_add_virtual_
      Src: /src/libevent/bufferevent_async.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: bev_async_add_write
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_add_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_add_write(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_add_virtual_
      Src: /src/libevent/bufferevent_async.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: bev_async_add_read
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_add_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_add_read(struct bufferevent_async *beva)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_async.c:218,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:219,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_async.c:223,1
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_async.c:227,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:232,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_async.c:237,1
    - Dst: evbuffer_launch_write_
      Src: /src/libevent/bufferevent_async.c:238,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent_async.c:240,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:242,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_async.c:245,1
    - Dst: bev_async_add_write
      Src: /src/libevent/bufferevent_async.c:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 248
    functionName: bev_async_consider_writing
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_write_max_
    - bufferevent_incref_
    - bufferevent_decrement_write_buckets_
    - bufferevent_decref_
    - be_async_run_eventcb
    - evbuffer_get_length
    - bev_async_del_write
    - evbuffer_launch_write_
    - bev_async_add_write
    linkageType: ''
    returnType: void
    signature: void bev_async_consider_writing(struct bufferevent_async *beva)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:264,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_async.c:269,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:273,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_async.c:283,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:288,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_async.c:292,1
    - Dst: evbuffer_launch_read_
      Src: /src/libevent/bufferevent_async.c:293,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:295,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent_async.c:296,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_async.c:299,1
    - Dst: bev_async_add_read
      Src: /src/libevent/bufferevent_async.c:300,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 304
    functionName: bev_async_consider_reading
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_
    - bev_async_add_read
    - bev_async_del_read
    - be_async_run_eventcb
    - evbuffer_get_length
    - bufferevent_get_read_max_
    - evbuffer_launch_read_
    - bufferevent_decrement_read_buckets_
    - bufferevent_decref_
    linkageType: ''
    returnType: void
    signature: void bev_async_consider_reading(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:312,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_async.c:317,1
    - Dst: bev_async_consider_writing
      Src: /src/libevent/bufferevent_async.c:320,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 323
    functionName: be_async_outbuf_callback
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - upcast
    - bufferevent_decref_and_unlock_
    - bev_async_consider_writing
    linkageType: ''
    returnType: void
    signature: "void be_async_outbuf_callback(struct evbuffer *buf,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:331,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_async.c:336,1
    - Dst: bev_async_consider_reading
      Src: /src/libevent/bufferevent_async.c:339,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: be_async_inbuf_callback
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - upcast
    - bufferevent_decref_and_unlock_
    - bev_async_consider_reading
    linkageType: ''
    returnType: void
    signature: "void be_async_inbuf_callback(struct evbuffer *buf,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:347,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:358,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:360,1
    - Dst: bev_async_consider_reading
      Src: /src/libevent/bufferevent_async.c:366,1
    - Dst: bev_async_consider_writing
      Src: /src/libevent/bufferevent_async.c:368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - what
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 370
    functionName: be_async_enable
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - bev_async_consider_reading
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - bev_async_consider_writing
    linkageType: ''
    returnType: int
    signature: int be_async_enable(struct bufferevent *buf, short what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:375,1
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:381,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:382,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:385,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - what
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 390
    functionName: be_async_disable
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - bev_async_del_read
    - BEV_DEL_GENERIC_READ_TIMEOUT
    - bev_async_del_write
    linkageType: ''
    returnType: int
    signature: int be_async_disable(struct bufferevent *bev, short what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:395,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_async.c:396,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:399,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:399,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:400,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:402,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:403,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:405,1
    - Dst: evutil_closesocket
      Src: /src/libevent/bufferevent_async.c:408,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 411
    functionName: be_async_destruct
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast
    - EVUTIL_ASSERT
    - evbuffer_overlapped_get_fd_
    - evutil_closesocket
    - bev_async_del_read
    - bev_async_del_write
    - BEV_UPCAST
    - evbuffer_overlapped_set_fd_
    linkageType: ''
    returnType: void
    signature: void be_async_destruct(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:421,1
    - Dst: WSAGetOverlappedResult
      Src: /src/libevent/bufferevent_async.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - eo
    argTypes:
    - struct bufferevent*
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 423
    functionName: bev_async_set_wsa_error
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - WSAGetOverlappedResult
    - evbuffer_overlapped_get_fd_
    linkageType: ''
    returnType: void
    signature: void bev_async_set_wsa_error(struct bufferevent *bev, struct event_overlapped
      *eo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: be_async_flush
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int be_async_flush(struct bufferevent *bev, short what,\n    enum
      bufferevent_flush_mode mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast_connect
      Src: /src/libevent/bufferevent_async.c:436,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_async.c:440,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:442,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:444,1
    - Dst: setsockopt
      Src: /src/libevent/bufferevent_async.c:446,1
    - Dst: bufferevent_async_set_connected_
      Src: /src/libevent/bufferevent_async.c:449,1
    - Dst: bev_async_set_wsa_error
      Src: /src/libevent/bufferevent_async.c:451,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:453,1
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:455,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 458
    functionName: connect_complete
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_async_set_connected_
    - bev_async_set_wsa_error
    - setsockopt
    - EVUTIL_ASSERT
    - BEV_LOCK
    - evbuffer_overlapped_get_fd_
    - bufferevent_decref_and_unlock_
    - be_async_run_eventcb
    - event_base_del_virtual_
    - upcast_connect
    linkageType: ''
    returnType: void
    signature: "void connect_complete(struct event_overlapped *eo, ev_uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast_read
      Src: /src/libevent/bufferevent_async.c:464,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_async.c:468,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:469,1
    - Dst: evbuffer_commit_read_
      Src: /src/libevent/bufferevent_async.c:472,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_async.c:475,1
    - Dst: bev_async_set_wsa_error
      Src: /src/libevent/bufferevent_async.c:478,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:482,1
    - Dst: be_async_trigger_nolock
      Src: /src/libevent/bufferevent_async.c:483,1
    - Dst: bev_async_consider_reading
      Src: /src/libevent/bufferevent_async.c:484,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:488,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:492,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 497
    functionName: read_complete
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bev_async_set_wsa_error
    - bev_async_consider_reading
    - EVUTIL_ASSERT
    - upcast_read
    - BEV_LOCK
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - bufferevent_decref_and_unlock_
    - be_async_run_eventcb
    - evbuffer_commit_read_
    - bufferevent_decrement_read_buckets_
    - be_async_trigger_nolock
    linkageType: ''
    returnType: void
    signature: "void read_complete(struct event_overlapped *eo, ev_uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast_write
      Src: /src/libevent/bufferevent_async.c:503,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_async.c:508,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:509,1
    - Dst: evbuffer_commit_write_
      Src: /src/libevent/bufferevent_async.c:512,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_async.c:516,1
    - Dst: bev_async_set_wsa_error
      Src: /src/libevent/bufferevent_async.c:521,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:525,1
    - Dst: be_async_trigger_nolock
      Src: /src/libevent/bufferevent_async.c:526,1
    - Dst: bev_async_consider_writing
      Src: /src/libevent/bufferevent_async.c:527,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:531,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:535,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:539,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 540
    functionName: write_complete
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bev_async_set_wsa_error
    - bufferevent_decrement_write_buckets_
    - EVUTIL_ASSERT
    - evbuffer_commit_write_
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    - be_async_run_eventcb
    - upcast_write
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - be_async_trigger_nolock
    - bev_async_consider_writing
    linkageType: ''
    returnType: void
    signature: "void write_complete(struct event_overlapped *eo, ev_uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_async.c:552,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/bufferevent_async.c:555,1
    - Dst: fatal_error
      Src: /src/libevent/bufferevent_async.c:556,1
    - Dst: GetLastError
      Src: /src/libevent/bufferevent_async.c:556,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_async.c:560,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/bufferevent_async.c:564,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_async.c:565,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/bufferevent_async.c:568,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent_async.c:569,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_async.c:570,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_async.c:574,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_async.c:578,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_async.c:579,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/bufferevent_async.c:581,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/bufferevent_async.c:582,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/bufferevent_async.c:583,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_async.c:585,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_async.c:591,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - base
    - fd
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 593
    functionName: bufferevent_async_new_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_init_generic_timeout_cbs_
    - event_overlapped_init_
    - mm_calloc
    - event_iocp_port_associate_
    - bufferevent_free
    - mm_free
    - evbuffer_free
    - bufferevent_init_common_
    - event_base_get_iocp_
    - evbuffer_overlapped_new_
    - GetLastError
    - evbuffer_add_cb
    - fatal_error
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_async_new_(struct event_base *base,\n
      \   evutil_socket_t fd, int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:598,1
    - Dst: be_async_enable
      Src: /src/libevent/bufferevent_async.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 602
    functionName: bufferevent_async_set_connected_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 1
    functionsReached:
    - upcast
    - be_async_enable
    linkageType: ''
    returnType: void
    signature: void bufferevent_async_set_connected_(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/bufferevent_async.c:608,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:610,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_async.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 616
    functionName: bufferevent_async_can_connect_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_get_iocp_
    - event_get_win32_extension_fns_
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: int
    signature: int bufferevent_async_can_connect_(struct bufferevent *bev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:623,1
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/bufferevent_async.c:626,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:628,1
    - Dst: memset
      Src: /src/libevent/bufferevent_async.c:634,1
    - Dst: bind
      Src: /src/libevent/bufferevent_async.c:647,1
    - Dst: WSAGetLastError
      Src: /src/libevent/bufferevent_async.c:648,1
    - Dst: event_base_add_virtual_
      Src: /src/libevent/bufferevent_async.c:651,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_async.c:652,1
    - Dst: struct win32_extension_fns*::ConnectEx
      Src: /src/libevent/bufferevent_async.c:653,1
    - Dst: WSAGetLastError
      Src: /src/libevent/bufferevent_async.c:655,1
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:658,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent_async.c:659,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - bev
    - fd
    - sa
    - socklen
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 662
    functionName: bufferevent_async_connect_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_
    - WSAGetLastError
    - upcast
    - EVUTIL_ASSERT
    - bufferevent_decref_
    - event_get_win32_extension_fns_
    - struct win32_extension_fns*::ConnectEx
    - event_base_del_virtual_
    - bind
    - event_base_add_virtual_
    - memset
    linkageType: ''
    returnType: int
    signature: "int bufferevent_async_connect_(struct bufferevent *bev, evutil_socket_t
      fd,\n\tconst struct sockaddr *sa, int socklen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:670,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:673,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:676,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_async.c:678,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/bufferevent_async.c:680,1
    - Dst: fatal_error
      Src: /src/libevent/bufferevent_async.c:681,1
    - Dst: GetLastError
      Src: /src/libevent/bufferevent_async.c:681,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:684,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:685,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:690,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:691,1
    - Dst: closesocket
      Src: /src/libevent/bufferevent_async.c:694,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 704
    functionName: be_async_ctrl
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_iocp_port_associate_
    - upcast
    - evbuffer_overlapped_get_fd_
    - event_base_get_iocp_
    - GetLastError
    - evbuffer_overlapped_set_fd_
    - fatal_error
    - closesocket
    linkageType: ''
    returnType: int
    signature: "int be_async_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op
      op,\n    union bufferevent_ctrl_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event_debug_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: hash_debug_entry
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned hash_debug_entry(const struct event_debug_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct event_debug_entry*
    - struct event_debug_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: eq_debug_entry
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int eq_debug_entry(const struct event_debug_entry *a,\n    const struct
      event_debug_entry *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:251,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:252,1
    - Dst: mm_malloc
      Src: /src/libevent/event.c:256,1
    - Dst: event_err
      Src: /src/libevent/event.c:258,1
    - Dst: HT_INSERT
      Src: /src/libevent/event.c:262,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 268
    functionName: event_debug_note_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_err
    - HT_INSERT
    - mm_malloc
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    - HT_FIND
    linkageType: ''
    returnType: void
    signature: void event_debug_note_setup_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:278,1
    - Dst: HT_REMOVE
      Src: /src/libevent/event.c:279,1
    - Dst: mm_free
      Src: /src/libevent/event.c:281,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 286
    functionName: event_debug_note_teardown_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - HT_REMOVE
    - EVLOCK_UNLOCK
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_debug_note_teardown_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:296,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:297,1
    - Dst: event_errx
      Src: /src/libevent/event.c:301,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:306,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 312
    functionName: event_debug_note_add_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    - EV_SOCK_ARG
    - HT_FIND
    - event_errx
    linkageType: ''
    returnType: void
    signature: void event_debug_note_add_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:322,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:323,1
    - Dst: event_errx
      Src: /src/libevent/event.c:327,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:332,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 338
    functionName: event_debug_note_del_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    - EV_SOCK_ARG
    - HT_FIND
    - event_errx
    linkageType: ''
    returnType: void
    signature: void event_debug_note_del_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:348,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:349,1
    - Dst: event_errx
      Src: /src/libevent/event.c:351,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:356,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: event_debug_assert_is_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    - EV_SOCK_ARG
    - HT_FIND
    - event_errx
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_is_setup_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:369,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:370,1
    - Dst: event_errx
      Src: /src/libevent/event.c:372,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:377,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 380
    functionName: event_debug_assert_not_added_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    - EV_SOCK_ARG
    - HT_FIND
    - event_errx
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_not_added_(const struct event *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/libevent/event.c:391,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 396
    functionName: event_debug_assert_socket_nonblocking_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - fcntl
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_socket_nonblocking_(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: event_debug_note_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_setup_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: event_debug_note_teardown_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_teardown_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: event_debug_note_add_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_add_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: event_debug_note_del_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_del_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: event_debug_assert_is_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_is_setup_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: event_debug_assert_not_added_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_not_added_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: event_debug_assert_socket_nonblocking_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_socket_nonblocking_(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: EVENT_BASE_ASSERT_LOCKED
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_BASE_ASSERT_LOCKED(base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:422,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/event.c:429,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/event.c:436,1
    - Dst: evutil_timersub
      Src: /src/libevent/event.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 442
    functionName: gettime
    functionSourceFile: /src/libevent/event.c
    functionUses: 8
    functionsReached:
    - evutil_gettimeofday
    - EVENT_BASE_ASSERT_LOCKED
    - evutil_gettime_monotonic_
    - evutil_timersub
    linkageType: ''
    returnType: int
    signature: int gettime(struct event_base *base, struct timeval *tp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/event.c:451,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:454,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/event.c:456,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:458,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 463
    functionName: event_base_gettimeofday_cached
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - evutil_gettimeofday
    - evutil_timeradd
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_gettimeofday_cached(struct event_base *base, struct
      timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: clear_time_cache
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_time_cache(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettime
      Src: /src/libevent/event.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: update_time_cache
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - gettime
    linkageType: ''
    returnType: void
    signature: void update_time_cache(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:491,1
    - Dst: update_time_cache
      Src: /src/libevent/event.c:493,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 496
    functionName: event_base_update_cache_time
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    - update_time_cache
    linkageType: ''
    returnType: int
    signature: int event_base_update_cache_time(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:501,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/event.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evcb
    argTypes:
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: event_callback_to_event
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: struct event
    signature: 'struct event *

      event_callback_to_event(struct event_callback *evcb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: event_to_event_callback
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_callback
    signature: 'struct event_callback *

      event_to_event_callback(struct event *ev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new_with_config
      Src: /src/libevent/event.c:514,1
    - Dst: event_errx
      Src: /src/libevent/event.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 524
    functionName: event_init
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_base_new_with_config
    - event_errx
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_init(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/event.c:530,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/event.c:532,1
    - Dst: event_config_free
      Src: /src/libevent/event.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 536
    functionName: event_base_new
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_config_new
    - event_base_new_with_config
    - event_config_free
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_base_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:546,1
    - Dst: strcmp
      Src: /src/libevent/event.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cfg
    - method
    argTypes:
    - struct event_config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 553
    functionName: event_config_is_avoided_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int event_config_is_avoided_method(const struct event_config *cfg,\n
      \   const char *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/event.c:562,1
    - Dst: EVUTIL_TOUPPER_
      Src: /src/libevent/event.c:564,1
    - Dst: evutil_getenv_
      Src: /src/libevent/event.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 568
    functionName: event_is_method_disabled
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evutil_getenv_
    - EVUTIL_TOUPPER_
    - evutil_snprintf
    linkageType: ''
    returnType: int
    signature: int event_is_method_disabled(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: event_base_get_features
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_base_get_features(const struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_errx
      Src: /src/libevent/event.c:581,1
    - Dst: event_errx
      Src: /src/libevent/event.c:583,1
    - Dst: HT_INIT
      Src: /src/libevent/event.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 590
    functionName: event_enable_debug_mode
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_errx
    - HT_INIT
    linkageType: ''
    returnType: void
    signature: void event_enable_debug_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:598,1
    - Dst: HT_START
      Src: /src/libevent/event.c:599,1
    - Dst: HT_NEXT_RMV
      Src: /src/libevent/event.c:601,1
    - Dst: mm_free
      Src: /src/libevent/event.c:602,1
    - Dst: HT_CLEAR
      Src: /src/libevent/event.c:604,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 609
    functionName: event_disable_debug_mode
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - HT_START
    - HT_NEXT_RMV
    - HT_CLEAR
    - EVLOCK_LOCK
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_disable_debug_mode(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/event.c:622,1
    - Dst: event_warn
      Src: /src/libevent/event.c:623,1
    - Dst: evutil_getenv_
      Src: /src/libevent/event.c:639,1
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/event.c:645,1
    - Dst: gettime
      Src: /src/libevent/event.c:647,1
    - Dst: min_heap_ctor_
      Src: /src/libevent/event.c:650,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:657,1
    - Dst: evmap_io_initmap_
      Src: /src/libevent/event.c:659,1
    - Dst: evmap_signal_initmap_
      Src: /src/libevent/event.c:660,1
    - Dst: event_changelist_init_
      Src: /src/libevent/event.c:661,1
    - Dst: memcpy
      Src: /src/libevent/event.c:666,1
    - Dst: event_config_is_avoided_method
      Src: /src/libevent/event.c:686,1
    - Dst: event_is_method_disabled
      Src: /src/libevent/event.c:696,1
    - Dst: struct event_base*::evsel::init
      Src: /src/libevent/event.c:701,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:705,1
    - Dst: event_base_free
      Src: /src/libevent/event.c:708,1
    - Dst: evutil_getenv_
      Src: /src/libevent/event.c:712,1
    - Dst: event_msgx
      Src: /src/libevent/event.c:713,1
    - Dst: event_base_priority_init
      Src: /src/libevent/event.c:716,1
    - Dst: event_base_free
      Src: /src/libevent/event.c:717,1
    - Dst: EVTHREAD_LOCKING_ENABLED
      Src: /src/libevent/event.c:728,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/event.c:731,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/event.c:732,1
    - Dst: evthread_make_base_notifiable
      Src: /src/libevent/event.c:733,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:735,1
    - Dst: event_base_free
      Src: /src/libevent/event.c:736,1
    - Dst: event_base_start_iocp_
      Src: /src/libevent/event.c:744,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:749,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 83
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct event_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 752
    functionName: event_base_new_with_config
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - event_is_method_disabled
    - mm_calloc
    - event_config_is_avoided_method
    - struct event_base*::evsel::init
    - event_warnx
    - event_base_start_iocp_
    - EVTHREAD_LOCKING_ENABLED
    - evutil_configure_monotonic_time_
    - event_changelist_init_
    - evthread_make_base_notifiable
    - EVTHREAD_ALLOC_COND
    - evutil_getenv_
    - TAILQ_INIT
    - EVTHREAD_ALLOC_LOCK
    - event_msgx
    - memcpy
    - evmap_signal_initmap_
    - event_base_priority_init
    - event_warn
    - event_base_free
    - min_heap_ctor_
    - evmap_io_initmap_
    - gettime
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_base_new_with_config(const struct event_config *cfg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_iocp_port_launch_
      Src: /src/libevent/event.c:760,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - base
    - n_cpus
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 769
    functionName: event_base_start_iocp_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_iocp_port_launch_
    - event_warnx
    linkageType: ''
    returnType: int
    signature: int event_base_start_iocp_(struct event_base *base, int n_cpus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_iocp_shutdown_
      Src: /src/libevent/event.c:779,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 783
    functionName: event_base_stop_iocp_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_iocp_shutdown_
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void event_base_stop_iocp_(struct event_base *base)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:793,1
    - Dst: event_del_
      Src: /src/libevent/event.c:795,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:799,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:800,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:801,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:809,1
    - Dst: struct event*::ev_evcallback::evcb_cb_union::evcb_evfinalize
      Src: /src/libevent/event.c:810,1
    - Dst: mm_free
      Src: /src/libevent/event.c:812,1
    - Dst: struct event_callback*::evcb_cb_union::evcb_cbfinalize
      Src: /src/libevent/event.c:816,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - base
    - evcb
    - run_finalizers
    argTypes:
    - struct event_base*
    - struct event_callback*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 823
    functionName: event_base_cancel_single_callback_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - struct event_callback*::evcb_cb_union::evcb_cbfinalize
    - EVBASE_ACQUIRE_LOCK
    - event_callback_cancel_nolock_
    - event_del_
    - event_callback_to_event
    - EVBASE_RELEASE_LOCK
    - mm_free
    - struct event*::ev_evcallback::evcb_cb_union::evcb_evfinalize
    linkageType: ''
    returnType: int
    signature: "int event_base_cancel_single_callback_(struct event_base *base,\n
      \   struct event_callback *evcb,\n    int run_finalizers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:831,1
    - Dst: TAILQ_NEXT
      Src: /src/libevent/event.c:832,1
    - Dst: event_base_cancel_single_callback_
      Src: /src/libevent/event.c:833,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:840,1
    - Dst: event_base_cancel_single_callback_
      Src: /src/libevent/event.c:841,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - base
    - run_finalizers
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 846
    functionName: event_base_free_queues_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - event_base_cancel_single_callback_
    - TAILQ_NEXT
    linkageType: ''
    returnType: int
    signature: int event_base_free_queues_(struct event_base *base, int run_finalizers)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: event_warnx
      Src: /src/libevent/event.c:864,1
    - Dst: event_base_stop_iocp_
      Src: /src/libevent/event.c:870,1
    - Dst: event_del
      Src: /src/libevent/event.c:875,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:876,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:878,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:881,1
    - Dst: evmap_delete_all_
      Src: /src/libevent/event.c:885,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:887,1
    - Dst: event_del
      Src: /src/libevent/event.c:888,1
    - Dst: event_del
      Src: /src/libevent/event.c:894,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:895,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:896,1
    - Dst: TAILQ_NEXT
      Src: /src/libevent/event.c:897,1
    - Dst: event_del
      Src: /src/libevent/event.c:900,1
    - Dst: mm_free
      Src: /src/libevent/event.c:905,1
    - Dst: mm_free
      Src: /src/libevent/event.c:908,1
    - Dst: event_base_free_queues_
      Src: /src/libevent/event.c:919,1
    - Dst: event_debug
      Src: /src/libevent/event.c:920,1
    - Dst: event_debug
      Src: /src/libevent/event.c:928,1
    - Dst: LIST_FIRST
      Src: /src/libevent/event.c:931,1
    - Dst: LIST_FIRST
      Src: /src/libevent/event.c:932,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/event.c:933,1
    - Dst: mm_free
      Src: /src/libevent/event.c:934,1
    - Dst: struct event_base*::evsel::dealloc
      Src: /src/libevent/event.c:938,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:941,1
    - Dst: TAILQ_EMPTY
      Src: /src/libevent/event.c:941,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:943,1
    - Dst: min_heap_empty_
      Src: /src/libevent/event.c:943,1
    - Dst: min_heap_dtor_
      Src: /src/libevent/event.c:944,1
    - Dst: mm_free
      Src: /src/libevent/event.c:946,1
    - Dst: evmap_io_clear_
      Src: /src/libevent/event.c:948,1
    - Dst: evmap_signal_clear_
      Src: /src/libevent/event.c:949,1
    - Dst: event_changelist_freemem_
      Src: /src/libevent/event.c:950,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/event.c:952,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/event.c:953,1
    - Dst: TAILQ_EMPTY
      Src: /src/libevent/event.c:957,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:958,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:959,1
    - Dst: mm_free
      Src: /src/libevent/event.c:960,1
    - Dst: mm_free
      Src: /src/libevent/event.c:967,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 2
    argNames:
    - base
    - run_finalizers
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 848
    functionDepth: 4
    functionLinenumber: 848
    functionLinenumberEnd: 968
    functionName: event_base_free_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - min_heap_top_
    - struct event_base*::evsel::dealloc
    - min_heap_empty_
    - EVUTIL_ASSERT
    - event_warnx
    - event_del
    - mm_free
    - min_heap_dtor_
    - event_base_stop_iocp_
    - TAILQ_NEXT
    - EVUTIL_CLOSESOCKET
    - event_debug_unassign
    - EVTHREAD_FREE_COND
    - evmap_delete_all_
    - TAILQ_EMPTY
    - LIST_REMOVE
    - EVTHREAD_FREE_LOCK
    - TAILQ_REMOVE
    - LIST_FIRST
    - event_changelist_freemem_
    - event_debug
    - evmap_io_clear_
    - event_base_free_queues_
    - evmap_signal_clear_
    linkageType: ''
    returnType: void
    signature: void event_base_free_(struct event_base *base, int run_finalizers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_free_
      Src: /src/libevent/event.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 970
    functionDepth: 5
    functionLinenumber: 970
    functionLinenumberEnd: 974
    functionName: event_base_free_nofinalize
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_free_
    linkageType: ''
    returnType: void
    signature: void event_base_free_nofinalize(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_free_
      Src: /src/libevent/event.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 976
    functionDepth: 5
    functionLinenumber: 976
    functionLinenumberEnd: 980
    functionName: event_base_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - event_base_free_
    linkageType: ''
    returnType: void
    signature: void event_base_free(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - b
    - fd
    - old
    - events
    - fdinfo
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 990
    functionName: nil_backend_del
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int nil_backend_del(struct event_base *b, evutil_socket_t fd, short
      old,\n    short events, void *fdinfo)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1010,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1034,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:1035,1
    - Dst: memset
      Src: /src/libevent/event.c:1036,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1041,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1043,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1049,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1050,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1052,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:1055,1
    - Dst: struct event_base*::evsel::dealloc
      Src: /src/libevent/event.c:1072,1
    - Dst: struct eventop*::init
      Src: /src/libevent/event.c:1073,1
    - Dst: event_errx
      Src: /src/libevent/event.c:1075,1
    - Dst: event_changelist_freemem_
      Src: /src/libevent/event.c:1084,1
    - Dst: evmap_reinit_
      Src: /src/libevent/event.c:1089,1
    - Dst: evsig_init_
      Src: /src/libevent/event.c:1092,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:1094,1
    - Dst: evthread_make_base_notifiable_nolock_
      Src: /src/libevent/event.c:1103,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1106,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1108
    functionName: event_reinit
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_CLOSESOCKET
    - event_add_nolock_
    - event_debug_unassign
    - EVBASE_ACQUIRE_LOCK
    - struct eventop*::init
    - struct event_base*::evsel::dealloc
    - evthread_make_base_notifiable_nolock_
    - evmap_reinit_
    - event_errx
    - event_del_nolock_
    - event_changelist_freemem_
    - EVBASE_RELEASE_LOCK
    - evsig_init_
    - memset
    linkageType: ''
    returnType: int
    signature: int event_reinit(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1117,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/event.c:1118,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1123
    functionName: event_gettime_monotonic
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - evutil_gettime_monotonic_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_gettime_monotonic(struct event_base *base, struct timeval
      *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1139,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1155
    functionName: event_get_supported_methods
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - mm_free
    linkageType: ''
    returnType: char
    signature: 'char **

      event_get_supported_methods(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1160,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1171
    functionName: event_config_new
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - TAILQ_INIT
    - mm_calloc
    linkageType: ''
    returnType: struct event_config
    signature: 'struct event_config *

      event_config_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/event.c:1177,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct event_config_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1179
    functionName: event_config_entry_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_config_entry_free(struct event_config_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1186,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:1187,1
    - Dst: event_config_entry_free
      Src: /src/libevent/event.c:1188,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct event_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1191
    functionName: event_config_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - TAILQ_FIRST
    - event_config_entry_free
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_config_free(struct event_config *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - flag
    argTypes:
    - struct event_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1200
    functionName: event_config_set_flag
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_config_set_flag(struct event_config *cfg, int flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/event.c:1205,1
    - Dst: mm_strdup
      Src: /src/libevent/event.c:1209,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1210,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cfg
    - method
    argTypes:
    - struct event_config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1217
    functionName: event_config_avoid_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - mm_strdup
    - TAILQ_INSERT_TAIL
    - mm_free
    linkageType: ''
    returnType: int
    signature: int event_config_avoid_method(struct event_config *cfg, const char
      *method)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - features
    argTypes:
    - struct event_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1219
    functionDepth: 0
    functionLinenumber: 1219
    functionLinenumberEnd: 1227
    functionName: event_config_require_features
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int event_config_require_features(struct event_config *cfg,\n    int
      features)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - cpus
    argTypes:
    - struct event_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1236
    functionName: event_config_set_num_cpus_hint
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_config_set_num_cpus_hint(struct event_config *cfg, int cpus)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/event.c:1243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - cfg
    - max_interval
    - max_callbacks
    - min_priority
    argTypes:
    - struct event_config*
    - struct timeval*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1253
    functionName: event_config_set_max_dispatch_interval
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int event_config_set_max_dispatch_interval(struct event_config *cfg,\n
      \   const struct timeval *max_interval, int max_callbacks, int min_priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_priority_init
      Src: /src/libevent/event.c:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - npriorities
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1259
    functionName: event_priority_init
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_priority_init
    linkageType: ''
    returnType: int
    signature: int event_priority_init(int npriorities)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1267,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:1269,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1277,1
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1283,1
    - Dst: event_warn
      Src: /src/libevent/event.c:1285,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:1291,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - base
    - npriorities
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1299
    functionName: event_base_priority_init
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - mm_calloc
    - EVBASE_ACQUIRE_LOCK
    - event_warn
    - TAILQ_INIT
    - N_ACTIVE_CALLBACKS
    - EVBASE_RELEASE_LOCK
    - mm_free
    linkageType: ''
    returnType: int
    signature: int event_base_priority_init(struct event_base *base, int npriorities)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1309,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1313
    functionName: event_base_get_npriorities
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_get_npriorities(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1320,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - struct event_base*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1334
    functionName: event_base_get_num_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_get_num_events(struct event_base *base, unsigned int
      type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1341,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - base
    - type
    - clear
    argTypes:
    - struct event_base*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1336
    functionDepth: 1
    functionLinenumber: 1336
    functionLinenumberEnd: 1364
    functionName: event_base_get_max_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_get_max_events(struct event_base *base, unsigned int
      type, int clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1372
    functionName: event_haveevents
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_haveevents(struct event_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1395,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1403,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1418
    functionName: event_signal_closure
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_signal_closure(struct event_base *base, struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1442
    functionName: COMMON_TIMEOUT_IDX
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMMON_TIMEOUT_IDX(tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:1451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tv
    - base
    argTypes:
    - struct timeval*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1453
    functionName: is_common_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - COMMON_TIMEOUT_IDX
    linkageType: ''
    returnType: int
    signature: "int is_common_timeout(const struct timeval *tv,\n    const struct
      event_base *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1462
    functionName: is_same_common_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_same_common_timeout(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1470
    functionName: get_common_timeout_list
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - COMMON_TIMEOUT_IDX
    linkageType: ''
    returnType: struct common_timeout_list
    signature: 'struct common_timeout_list *

      get_common_timeout_list(struct event_base *base, const struct timeval *tv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:1478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - tv
    - base
    argTypes:
    - struct timeval*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1481
    functionName: common_timeout_ok
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - get_common_timeout_list
    linkageType: ''
    returnType: int
    signature: "int common_timeout_ok(const struct timeval *tv,\n    struct event_base
      *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctl
    - now
    - head
    argTypes:
    - struct common_timeout_list*
    - struct timeval*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1493
    functionName: common_timeout_schedule
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_add_nolock_
    linkageType: ''
    returnType: void
    signature: "void common_timeout_schedule(struct common_timeout_list *ctl,\n    const
      struct timeval *now, struct event *head)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1505,1
    - Dst: gettime
      Src: /src/libevent/event.c:1506,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1509,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1516,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:1518,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:1519,1
    - Dst: common_timeout_schedule
      Src: /src/libevent/event.c:1522,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1523,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1524
    functionName: common_timeout_callback
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - event_active_nolock_
    - EVBASE_ACQUIRE_LOCK
    - event_queue_remove_timeout
    - event_del_nolock_
    - common_timeout_schedule
    - EVBASE_RELEASE_LOCK
    - gettime
    linkageType: ''
    returnType: void
    signature: void common_timeout_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1537,1
    - Dst: memcpy
      Src: /src/libevent/event.c:1539,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1540,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1552,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1552,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:1558,1
    - Dst: mm_realloc
      Src: /src/libevent/event.c:1567,1
    - Dst: event_warn
      Src: /src/libevent/event.c:1570,1
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1576,1
    - Dst: event_warn
      Src: /src/libevent/event.c:1578,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:1581,1
    - Dst: evtimer_assign
      Src: /src/libevent/event.c:1586,1
    - Dst: event_priority_set
      Src: /src/libevent/event.c:1589,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1596,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1596,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1598,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - base
    - duration
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1600
    functionName: event_base_init_common_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - EVBASE_ACQUIRE_LOCK
    - mm_realloc
    - event_warn
    - EVUTIL_ASSERT
    - event_warnx
    - evtimer_assign
    - is_common_timeout
    - TAILQ_INIT
    - EVBASE_RELEASE_LOCK
    - event_priority_set
    - memcpy
    linkageType: ''
    returnType: struct timeval
    signature: "struct timeval *\nevent_base_init_common_timeout(struct event_base
      *base,\n    const struct timeval *duration)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1621,1
    - Dst: is_same_common_timeout
      Src: /src/libevent/event.c:1621,1
    - Dst: gettime
      Src: /src/libevent/event.c:1623,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1624,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:1642,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:1643,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:1649,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:1652,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1603
    functionDepth: 2
    functionLinenumber: 1603
    functionLinenumberEnd: 1666
    functionName: event_persist_closure
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_add_nolock_
    - EVUTIL_ASSERT
    - evutil_timercmp
    - is_common_timeout
    - is_same_common_timeout
    - EVBASE_RELEASE_LOCK
    - evutil_timeradd
    - gettime
    linkageType: ''
    returnType: void
    signature: void event_persist_closure(struct event_base *base, struct event *ev)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1683,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1685,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1685,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:1688,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:1691,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1693,1
    - Dst: event_debug
      Src: /src/libevent/event.c:1694,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:1702,1
    - Dst: event_debug
      Src: /src/libevent/event.c:1703,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1709,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1709,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1722,1
    - Dst: event_signal_closure
      Src: /src/libevent/event.c:1723,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1726,1
    - Dst: event_persist_closure
      Src: /src/libevent/event.c:1727,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1732,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1735,1
    - Dst: evcb_callback
      Src: /src/libevent/event.c:1736,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1741,1
    - Dst: evcb_selfcb
      Src: /src/libevent/event.c:1742,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1749,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1752,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1753,1
    - Dst: event_debug_note_teardown_
      Src: /src/libevent/event.c:1754,1
    - Dst: evcb_evfinalize
      Src: /src/libevent/event.c:1755,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1757,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1763,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1764,1
    - Dst: evcb_cbfinalize
      Src: /src/libevent/event.c:1765,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1769,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1772,1
    - Dst: EVTHREAD_COND_BROADCAST
      Src: /src/libevent/event.c:1777,1
    - Dst: update_time_cache
      Src: /src/libevent/event.c:1787,1
    - Dst: gettime
      Src: /src/libevent/event.c:1788,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:1789,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 4
    argNames:
    - base
    - activeq
    - max_to_process
    - endtime
    argTypes:
    - struct event_base*
    - struct evcallback_list*
    - int
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1675
    functionDepth: 3
    functionLinenumber: 1675
    functionLinenumberEnd: 1796
    functionName: event_process_active_single_queue
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - EVBASE_ACQUIRE_LOCK
    - EVUTIL_ASSERT
    - event_debug_note_teardown_
    - event_persist_closure
    - mm_free
    - EVTHREAD_COND_BROADCAST
    - evcb_callback
    - event_queue_remove_active
    - event_del_nolock_
    - event_signal_closure
    - EVBASE_RELEASE_LOCK
    - evcb_evfinalize
    - evcb_cbfinalize
    - event_debug
    - update_time_cache
    - evutil_timercmp
    - event_callback_to_event
    - evcb_selfcb
    - gettime
    linkageType: ''
    returnType: int
    signature: "int event_process_active_single_queue(struct event_base *base,\n    struct
      evcallback_list *activeq,\n    int max_to_process, const struct timeval *endtime)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: update_time_cache
      Src: /src/libevent/event.c:1815,1
    - Dst: gettime
      Src: /src/libevent/event.c:1816,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:1817,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1824,1
    - Dst: event_process_active_single_queue
      Src: /src/libevent/event.c:1828,1
    - Dst: event_process_active_single_queue
      Src: /src/libevent/event.c:1831,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1804
    functionDepth: 4
    functionLinenumber: 1804
    functionLinenumberEnd: 1847
    functionName: event_process_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - update_time_cache
    - event_process_active_single_queue
    - evutil_timeradd
    - gettime
    linkageType: ''
    returnType: int
    signature: int event_process_active(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_loop
      Src: /src/libevent/event.c:1856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1857
    functionName: event_dispatch
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_loop
    linkageType: ''
    returnType: int
    signature: int event_dispatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/event.c:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1859
    functionDepth: 1
    functionLinenumber: 1859
    functionLinenumberEnd: 1863
    functionName: event_base_dispatch
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_loop
    linkageType: ''
    returnType: int
    signature: int event_base_dispatch(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1870
    functionName: event_base_get_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: char
    signature: 'char *

      event_base_get_method(const struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1872
    functionDepth: 1
    functionLinenumber: 1872
    functionLinenumberEnd: 1877
    functionName: event_base_get_signal_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: char
    signature: 'char *

      event_base_get_signal_method(const struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1881
    functionDepth: 0
    functionLinenumber: 1881
    functionLinenumberEnd: 1886
    functionName: event_loopexit_cb
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_loopexit_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_once
      Src: /src/libevent/event.c:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1893
    functionName: event_loopexit
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_once
    linkageType: ''
    returnType: int
    signature: int event_loopexit(const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/event.c:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event_base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1900
    functionName: event_base_loopexit
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_base_once
    linkageType: ''
    returnType: int
    signature: int event_base_loopexit(struct event_base *event_base, const struct
      timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/event.c:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1906
    functionName: event_loopbreak
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: int
    signature: int event_loopbreak(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1915,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:1918,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:1919,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1908
    functionDepth: 1
    functionLinenumber: 1908
    functionLinenumberEnd: 1925
    functionName: event_base_loopbreak
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_NEED_NOTIFY
    - evthread_notify_base
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_loopbreak(struct event_base *event_base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1934,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:1937,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:1938,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1944
    functionName: event_base_loopcontinue
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_NEED_NOTIFY
    - evthread_notify_base
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_loopcontinue(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1950,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1954
    functionName: event_base_got_break
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_got_break(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1960,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1956
    functionDepth: 1
    functionLinenumber: 1956
    functionLinenumberEnd: 1964
    functionName: event_base_got_exit
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_got_exit(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/event.c:1971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 1972
    functionName: event_loop
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_base_loop
    linkageType: ''
    returnType: int
    signature: int event_loop(int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1986,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:1989,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1991,1
    - Dst: clear_time_cache
      Src: /src/libevent/event.c:1997,1
    - Dst: evsig_set_base_
      Src: /src/libevent/event.c:2000,1
    - Dst: EVTHREAD_GET_ID
      Src: /src/libevent/event.c:2005,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2026,1
    - Dst: timeout_next
      Src: /src/libevent/event.c:2027,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:2033,1
    - Dst: event_haveevents
      Src: /src/libevent/event.c:2038,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2038,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2039,1
    - Dst: event_queue_make_later_events_active
      Src: /src/libevent/event.c:2044,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:2048,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2049,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2051,1
    - Dst: clear_time_cache
      Src: /src/libevent/event.c:2054,1
    - Dst: struct eventop*::dispatch
      Src: /src/libevent/event.c:2056,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2059,1
    - Dst: update_time_cache
      Src: /src/libevent/event.c:2065,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:2069,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2070,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2072,1
    - Dst: timeout_process
      Src: /src/libevent/event.c:2075,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2077,1
    - Dst: event_process_active
      Src: /src/libevent/event.c:2078,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2080,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2086,1
    - Dst: clear_time_cache
      Src: /src/libevent/event.c:2089,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2092,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 1974
    functionDepth: 5
    functionLinenumber: 1974
    functionLinenumberEnd: 2095
    functionName: event_base_loop
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - timeout_process
    - EVBASE_ACQUIRE_LOCK
    - update_time_cache
    - event_process_active
    - clear_time_cache
    - event_queue_make_later_events_active
    - event_warnx
    - EVTHREAD_GET_ID
    - event_haveevents
    - EVBASE_RELEASE_LOCK
    - N_ACTIVE_CALLBACKS
    - evutil_timerclear
    - event_debug
    - timeout_next
    - evsig_set_base_
    - struct eventop*::dispatch
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int event_base_loop(struct event_base *base, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2105,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/event.c:2106,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2107,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:2108,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2110
    functionName: event_once_cb
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_unassign
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - LIST_REMOVE
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_once_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/event.c:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - events
    - arg
    - tv
    argTypes:
    - evutil_socket_t
    - short
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2119
    functionName: event_once
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_base_once
    linkageType: ''
    returnType: int
    signature: "int event_once(evutil_socket_t fd, short events,\n    void (*callback)(evutil_socket_t,
      short, void *),\n    void *arg, const struct timeval *tv)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/event.c:2139,1
    - Dst: evtimer_assign
      Src: /src/libevent/event.c:2146,1
    - Dst: evutil_timerisset
      Src: /src/libevent/event.c:2148,1
    - Dst: event_assign
      Src: /src/libevent/event.c:2158,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2161,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2166,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:2168,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:2170,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2173,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/event.c:2176,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - base
    - fd
    - events
    - arg
    - tv
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2122
    functionDepth: 1
    functionLinenumber: 2122
    functionLinenumberEnd: 2181
    functionName: event_base_once
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_active_nolock_
    - evutil_timerisset
    - event_add_nolock_
    - mm_calloc
    - EVBASE_ACQUIRE_LOCK
    - event_assign
    - LIST_INSERT_HEAD
    - evtimer_assign
    - EVBASE_RELEASE_LOCK
    - mm_free
    linkageType: ''
    returnType: int
    signature: "int event_base_once(struct event_base *base, evutil_socket_t fd, short
      events,\n    void (*callback)(evutil_socket_t, short, void *),\n    void *arg,
      const struct timeval *tv)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_socket_nonblocking_
      Src: /src/libevent/event.c:2196,1
    - Dst: event_debug_assert_not_added_
      Src: /src/libevent/event.c:2197,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2212,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:2219,1
    - Dst: min_heap_elem_init_
      Src: /src/libevent/event.c:2226,1
    - Dst: event_debug_note_setup_
      Src: /src/libevent/event.c:2233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 5
    argNames:
    - ev
    - base
    - fd
    - events
    - arg
    argTypes:
    - struct event*
    - struct event_base*
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2188
    functionDepth: 3
    functionLinenumber: 2188
    functionLinenumberEnd: 2236
    functionName: event_assign
    functionSourceFile: /src/libevent/event.c
    functionUses: 12
    functionsReached:
    - event_warnx
    - event_debug_note_setup_
    - evutil_timerclear
    - event_debug_assert_socket_nonblocking_
    - event_debug_assert_not_added_
    - min_heap_elem_init_
    linkageType: ''
    returnType: void
    signature: void event_assign(struct event *ev, struct event_base *base, evutil_socket_t
      fd, short events, void (*callback)(evutil_socket_t, short, void *), void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2238
    functionDepth: 3
    functionLinenumber: 2238
    functionLinenumberEnd: 2251
    functionName: event_base_set
    functionSourceFile: /src/libevent/event.c
    functionUses: 9
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: int
    signature: int event_base_set(struct event_base *base, struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/event.c:2258,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:2259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ev
    - fd
    - events
    - arg
    argTypes:
    - struct event*
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2253
    functionDepth: 4
    functionLinenumber: 2253
    functionLinenumberEnd: 2260
    functionName: event_set
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - event_assign
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void event_set(struct event *ev, evutil_socket_t fd, short events,\n\t
      \ void (*callback)(evutil_socket_t, short, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2262
    functionDepth: 0
    functionLinenumber: 2262
    functionLinenumberEnd: 2266
    functionName: event_self_cbarg
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      event_self_cbarg(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2272,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:2273,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:2276,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2268
    functionDepth: 2
    functionLinenumber: 2268
    functionLinenumberEnd: 2280
    functionName: event_base_get_running_event
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_IN_THREAD
    - event_callback_to_event
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: struct event
    signature: 'struct event *

      event_base_get_running_event(struct event_base *base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/event.c:2286,1
    - Dst: event_assign
      Src: /src/libevent/event.c:2289,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - base
    - fd
    - events
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2282
    functionDepth: 4
    functionLinenumber: 2282
    functionLinenumberEnd: 2295
    functionName: event_new
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_assign
    - mm_malloc
    - mm_free
    linkageType: ''
    returnType: struct event
    signature: 'struct event *

      event_new(struct event_base *base, evutil_socket_t fd, short events, void (*cb)(evutil_socket_t,
      short, void *), void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/event.c:2305,1
    - Dst: event_debug_note_teardown_
      Src: /src/libevent/event.c:2306,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2297
    functionDepth: 2
    functionLinenumber: 2297
    functionLinenumberEnd: 2309
    functionName: event_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 8
    functionsReached:
    - event_debug_note_teardown_
    - event_del
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_free(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_not_added_
      Src: /src/libevent/event.c:2314,1
    - Dst: event_debug_note_teardown_
      Src: /src/libevent/event.c:2315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2311
    functionDepth: 3
    functionLinenumber: 2311
    functionLinenumberEnd: 2318
    functionName: event_debug_unassign
    functionSourceFile: /src/libevent/event.c
    functionUses: 9
    functionsReached:
    - event_debug_note_teardown_
    - event_debug_assert_not_added_
    linkageType: ''
    returnType: void
    signature: void event_debug_unassign(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:2327,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:2330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - base
    - flags
    - ev
    - cb
    argTypes:
    - struct event_base*
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2333
    functionName: event_finalize_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_active_nolock_
    - event_del_nolock_
    linkageType: ''
    returnType: int
    signature: int event_finalize_nolock_(struct event_base *base, unsigned flags,
      struct event *ev, event_finalize_callback_fn cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2340,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2341,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2345,1
    - Dst: event_finalize_nolock_
      Src: /src/libevent/event.c:2346,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - flags
    - ev
    - cb
    argTypes:
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2335
    functionDepth: 2
    functionLinenumber: 2335
    functionLinenumberEnd: 2349
    functionName: event_finalize_impl_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - event_finalize_nolock_
    - event_warnx
    - EVBASE_RELEASE_LOCK
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: int
    signature: int event_finalize_impl_(unsigned flags, struct event *ev, event_finalize_callback_fn
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_finalize_impl_
      Src: /src/libevent/event.c:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - flags
    - ev
    - cb
    argTypes:
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2351
    functionDepth: 3
    functionLinenumber: 2351
    functionLinenumberEnd: 2355
    functionName: event_finalize
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_finalize_impl_
    linkageType: ''
    returnType: int
    signature: int event_finalize(unsigned flags, struct event *ev, event_finalize_callback_fn
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_finalize_impl_
      Src: /src/libevent/event.c:2360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - flags
    - ev
    - cb
    argTypes:
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2357
    functionDepth: 3
    functionLinenumber: 2357
    functionLinenumberEnd: 2361
    functionName: event_free_finalize
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_finalize_impl_
    linkageType: ''
    returnType: int
    signature: int event_free_finalize(unsigned flags, struct event *ev, event_finalize_callback_fn
      cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:2368,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:2369,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:2371,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:2376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - base
    - flags
    - evcb
    argTypes:
    - struct event_base*
    - unsigned
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2363
    functionDepth: 2
    functionLinenumber: 2363
    functionLinenumberEnd: 2378
    functionName: event_callback_finalize_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_callback_cancel_nolock_
    - event_callback_activate_nolock_
    - event_callback_to_event
    - event_del_nolock_
    linkageType: ''
    returnType: void
    signature: void event_callback_finalize_nolock_(struct event_base *base, unsigned
      flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2383,1
    - Dst: event_callback_finalize_nolock_
      Src: /src/libevent/event.c:2384,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - base
    - flags
    - evcb
    argTypes:
    - struct event_base*
    - unsigned
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2380
    functionDepth: 3
    functionLinenumber: 2380
    functionLinenumberEnd: 2386
    functionName: event_callback_finalize_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_callback_finalize_nolock_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_callback_finalize_(struct event_base *base, unsigned flags,
      struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2399,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2401,1
    - Dst: event_callback_finalize_nolock_
      Src: /src/libevent/event.c:2409,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:2412,1
    - Dst: event_callback_finalize_nolock_
      Src: /src/libevent/event.c:2418,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - base
    - n_cbs
    - evcbs
    argTypes:
    - struct event_base*
    - int
    - struct event_callback**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2391
    functionDepth: 3
    functionLinenumber: 2391
    functionLinenumberEnd: 2423
    functionName: event_callback_finalize_many_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - event_callback_cancel_nolock_
    - event_callback_finalize_nolock_
    - EVBASE_RELEASE_LOCK
    - event_debug
    linkageType: ''
    returnType: int
    signature: int event_callback_finalize_many_(struct event_base *base, int n_cbs,
      struct event_callback **evcbs, void (*cb)(struct event_callback *, void *))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ev
    - pri
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2430
    functionDepth: 3
    functionLinenumber: 2430
    functionLinenumberEnd: 2443
    functionName: event_priority_set
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: int
    signature: int event_priority_set(struct event *ev, int pri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2454,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2455,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2459,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2460,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:2476,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2479,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ev
    - event
    - tv
    argTypes:
    - struct event*
    - short
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2449
    functionDepth: 3
    functionLinenumber: 2449
    functionLinenumberEnd: 2482
    functionName: event_pending
    functionSourceFile: /src/libevent/event.c
    functionUses: 10
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - event_debug_assert_is_setup_
    - event_warnx
    - EVBASE_RELEASE_LOCK
    - evutil_timeradd
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: int
    signature: int event_pending(const struct event *ev, short event, struct timeval
      *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2484
    functionDepth: 0
    functionLinenumber: 2484
    functionLinenumberEnd: 2491
    functionName: event_initialized
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_initialized(const struct event *ev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2496,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - event
    - base_out
    - fd_out
    - events_out
    - callback_out
    - arg_out
    argTypes:
    - struct event*
    - struct event_base**
    - evutil_socket_t*
    - short*
    - event_callback_fn*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2493
    functionDepth: 3
    functionLinenumber: 2493
    functionLinenumberEnd: 2508
    functionName: event_get_assignment
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: void
    signature: void event_get_assignment(const struct event *event, struct event_base
      **base_out, evutil_socket_t *fd_out, short *events_out, event_callback_fn *callback_out,
      void **arg_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2514
    functionName: event_get_struct_event_size
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t event_get_struct_event_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2516
    functionDepth: 3
    functionLinenumber: 2516
    functionLinenumberEnd: 2521
    functionName: event_get_fd
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t event_get_fd(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2523
    functionDepth: 3
    functionLinenumber: 2523
    functionLinenumberEnd: 2528
    functionName: event_get_base
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_get_base(const struct event *ev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2530
    functionDepth: 3
    functionLinenumber: 2530
    functionLinenumberEnd: 2535
    functionName: event_get_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: short
    signature: short event_get_events(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2537
    functionDepth: 3
    functionLinenumber: 2537
    functionLinenumberEnd: 2542
    functionName: event_get_callback
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: event_callback_fn
    signature: event_callback_fn event_get_callback(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2544
    functionDepth: 3
    functionLinenumber: 2544
    functionLinenumberEnd: 2549
    functionName: event_get_callback_arg
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: void
    signature: 'void *

      event_get_callback_arg(const struct event *ev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2551
    functionDepth: 3
    functionLinenumber: 2551
    functionLinenumberEnd: 2556
    functionName: event_get_priority
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: int
    signature: int event_get_priority(const struct event *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2563,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2564,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2568,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:2570,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ev
    - tv
    argTypes:
    - struct event*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2558
    functionDepth: 2
    functionLinenumber: 2558
    functionLinenumberEnd: 2575
    functionName: event_add
    functionSourceFile: /src/libevent/event.c
    functionUses: 22
    functionsReached:
    - event_add_nolock_
    - EVBASE_ACQUIRE_LOCK
    - event_warnx
    - EVBASE_RELEASE_LOCK
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: int
    signature: int event_add(struct event *ev, const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/libevent/event.c:2588,1
    - Dst: write
      Src: /src/libevent/event.c:2590,1
    - Dst: EVUTIL_ERR_IS_EAGAIN
      Src: /src/libevent/event.c:2592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2593
      start: 2581
    functionDepth: 1
    functionLinenumber: 2581
    functionLinenumberEnd: 2593
    functionName: evthread_notify_base_default
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - write
    - EVUTIL_ERR_IS_EAGAIN
    - send
    linkageType: ''
    returnType: int
    signature: int evthread_notify_base_default(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eventfd_write
      Src: /src/libevent/event.c:2605,1
    - Dst: eventfd_read
      Src: /src/libevent/event.c:2613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2598
    functionDepth: 0
    functionLinenumber: 2598
    functionLinenumberEnd: 2624
    functionName: evthread_notify_base_eventfd
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - eventfd_read
    - eventfd_write
    linkageType: ''
    returnType: int
    signature: int evthread_notify_base_eventfd(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2634,1
    - Dst: struct event_base*::th_notify_fn
      Src: /src/libevent/event.c:2640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2631
    functionDepth: 1
    functionLinenumber: 2631
    functionLinenumberEnd: 2641
    functionName: evthread_notify_base
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - EVENT_BASE_ASSERT_LOCKED
    - struct event_base*::th_notify_fn
    linkageType: ''
    returnType: int
    signature: int evthread_notify_base(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2650,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2651,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2653,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:2657,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:2658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2645
    functionDepth: 3
    functionLinenumber: 2645
    functionLinenumberEnd: 2662
    functionName: event_remove_timer_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    - event_queue_remove_timeout
    - EVENT_BASE_ASSERT_LOCKED
    - evutil_timerclear
    - event_debug
    linkageType: ''
    returnType: int
    signature: int event_remove_timer_nolock_(struct event *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2669,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2670,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2674,1
    - Dst: event_remove_timer_nolock_
      Src: /src/libevent/event.c:2676,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2664
    functionDepth: 4
    functionLinenumber: 2664
    functionLinenumberEnd: 2681
    functionName: event_remove_timer
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - event_warnx
    - EVBASE_RELEASE_LOCK
    - event_remove_timer_nolock_
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: int
    signature: int event_remove_timer(struct event *ev)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2695,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2696,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2698,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:2701,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:2708,1
    - Dst: min_heap_reserve_
      Src: /src/libevent/event.c:2720,1
    - Dst: min_heap_size_
      Src: /src/libevent/event.c:2721,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2730,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:2732,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/event.c:2734,1
    - Dst: evmap_io_add_
      Src: /src/libevent/event.c:2741,1
    - Dst: evmap_signal_add_
      Src: /src/libevent/event.c:2743,1
    - Dst: event_queue_insert_inserted
      Src: /src/libevent/event.c:2745,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:2776,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:2795,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2795,1
    - Dst: gettime
      Src: /src/libevent/event.c:2798,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:2800,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:2802,1
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:2803,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:2811,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:2815,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2818,1
    - Dst: event_queue_reinsert_timeout
      Src: /src/libevent/event.c:2823,1
    - Dst: event_queue_insert_timeout
      Src: /src/libevent/event.c:2825,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:2830,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:2831,1
    - Dst: common_timeout_schedule
      Src: /src/libevent/event.c:2832,1
    - Dst: min_heap_elt_is_top_
      Src: /src/libevent/event.c:2842,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:2844,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:2845,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:2851,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:2852,1
    - Dst: event_debug_note_add_
      Src: /src/libevent/event.c:2854,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 74
    argCount: 3
    argNames:
    - ev
    - tv
    - tv_is_absolute
    argTypes:
    - struct event*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2687
    functionDepth: 3
    functionLinenumber: 2687
    functionLinenumberEnd: 2857
    functionName: event_add_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - TAILQ_FIRST
    - event_queue_reinsert_timeout
    - get_common_timeout_list
    - min_heap_top_
    - EVUTIL_ASSERT
    - evmap_signal_add_
    - event_queue_remove_timeout
    - event_queue_remove_active
    - common_timeout_schedule
    - EV_SOCK_ARG
    - event_queue_insert_inserted
    - min_heap_elt_is_top_
    - min_heap_reserve_
    - min_heap_size_
    - EVBASE_NEED_NOTIFY
    - event_queue_insert_timeout
    - evmap_io_add_
    - evthread_notify_base
    - event_to_event_callback
    - EVENT_BASE_ASSERT_LOCKED
    - event_debug
    - EVBASE_IN_THREAD
    - event_debug_assert_is_setup_
    - event_debug_note_add_
    - COMMON_TIMEOUT_IDX
    - evutil_timercmp
    - is_common_timeout
    - evutil_timeradd
    - gettime
    - EVTHREAD_COND_WAIT
    linkageType: ''
    returnType: int
    signature: "int event_add_nolock_(struct event *ev, const struct timeval *tv,\n
      \   int tv_is_absolute)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2865,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2866,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2870,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:2871,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ev
    - blocking
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2859
    functionDepth: 2
    functionLinenumber: 2859
    functionLinenumberEnd: 2875
    functionName: event_del_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - event_warnx
    - event_del_nolock_
    - EVBASE_RELEASE_LOCK
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: int
    signature: int event_del_(struct event *ev, int blocking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_
      Src: /src/libevent/event.c:2880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2877
    functionDepth: 3
    functionLinenumber: 2877
    functionLinenumberEnd: 2881
    functionName: event_del
    functionSourceFile: /src/libevent/event.c
    functionUses: 31
    functionsReached:
    - event_del_
    linkageType: ''
    returnType: int
    signature: int event_del(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_
      Src: /src/libevent/event.c:2886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 3
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: event_del_block
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_del_
    linkageType: ''
    returnType: int
    signature: int event_del_block(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_
      Src: /src/libevent/event.c:2892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2889
    functionDepth: 3
    functionLinenumber: 2889
    functionLinenumberEnd: 2893
    functionName: event_del_noblock
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_del_
    linkageType: ''
    returnType: int
    signature: int event_del_noblock(struct event *ev)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/event.c:2906,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:2907,1
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2913,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:2924,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:2936,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:2938,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:2942,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2942,1
    - Dst: event_queue_remove_active_later
      Src: /src/libevent/event.c:2944,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2944,1
    - Dst: event_queue_remove_inserted
      Src: /src/libevent/event.c:2947,1
    - Dst: evmap_io_del_
      Src: /src/libevent/event.c:2949,1
    - Dst: evmap_signal_del_
      Src: /src/libevent/event.c:2951,1
    - Dst: event_haveevents
      Src: /src/libevent/event.c:2959,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2959,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:2964,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:2965,1
    - Dst: event_debug_note_del_
      Src: /src/libevent/event.c:2967,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2976,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:2977,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/event.c:2980,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 2
    argNames:
    - ev
    - blocking
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2900
    functionDepth: 3
    functionLinenumber: 2900
    functionLinenumberEnd: 2985
    functionName: event_del_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached:
    - min_heap_top_
    - EVUTIL_ASSERT
    - event_debug_note_del_
    - event_queue_remove_timeout
    - event_queue_remove_active_later
    - event_queue_remove_active
    - EV_SOCK_ARG
    - EVBASE_NEED_NOTIFY
    - evthread_notify_base
    - event_to_event_callback
    - evmap_signal_del_
    - EVENT_BASE_ASSERT_LOCKED
    - event_debug
    - EVBASE_IN_THREAD
    - evmap_io_del_
    - event_queue_remove_inserted
    - event_haveevents
    - N_ACTIVE_CALLBACKS
    - EVTHREAD_COND_WAIT
    linkageType: ''
    returnType: int
    signature: int event_del_nolock_(struct event *ev, int blocking)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2990,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2991,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2995,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2997,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:2999,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ev
    - res
    - ncalls
    argTypes:
    - struct event*
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2987
    functionDepth: 3
    functionLinenumber: 2987
    functionLinenumberEnd: 3002
    functionName: event_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_active_nolock_
    - EVBASE_ACQUIRE_LOCK
    - event_debug_assert_is_setup_
    - event_warnx
    - EVBASE_RELEASE_LOCK
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_active(struct event *ev, int res, short ncalls)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/event.c:3010,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3011,1
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3014,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3024,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:3043,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:3044,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/event.c:3046,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:3053,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:3053,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ev
    - res
    - ncalls
    argTypes:
    - struct event*
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3054
    functionName: event_active_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached:
    - event_to_event_callback
    - EVUTIL_ASSERT
    - EV_SOCK_ARG
    - EVENT_BASE_ASSERT_LOCKED
    - event_debug
    - event_callback_activate_nolock_
    - EVBASE_IN_THREAD
    - EVTHREAD_COND_WAIT
    linkageType: ''
    returnType: void
    signature: void event_active_nolock_(struct event *ev, int res, short ncalls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3059,1
    - Dst: event_active_later_nolock_
      Src: /src/libevent/event.c:3060,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ev
    - res
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3056
    functionDepth: 1
    functionLinenumber: 3056
    functionLinenumberEnd: 3062
    functionName: event_active_later_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_active_later_nolock_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_active_later_(struct event *ev, int res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3068,1
    - Dst: event_callback_activate_later_nolock_
      Src: /src/libevent/event.c:3078,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:3078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ev
    - res
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3064
    functionDepth: 1
    functionLinenumber: 3064
    functionLinenumberEnd: 3079
    functionName: event_active_later_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_callback_activate_later_nolock_
    - EVENT_BASE_ASSERT_LOCKED
    - event_to_event_callback
    linkageType: ''
    returnType: void
    signature: void event_active_later_nolock_(struct event *ev, int res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3086,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:3087,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3081
    functionDepth: 1
    functionLinenumber: 3081
    functionLinenumberEnd: 3090
    functionName: event_callback_activate_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_callback_activate_nolock_
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: "int event_callback_activate_(struct event_base *base,\n    struct
      event_callback *evcb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3103,1
    - Dst: event_queue_remove_active_later
      Src: /src/libevent/event.c:3106,1
    - Dst: event_queue_insert_active
      Src: /src/libevent/event.c:3115,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:3117,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:3118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3092
    functionDepth: 2
    functionLinenumber: 3092
    functionLinenumberEnd: 3121
    functionName: event_callback_activate_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - evthread_notify_base
    - EVUTIL_ASSERT
    - event_queue_remove_active_later
    - EVBASE_NEED_NOTIFY
    - event_queue_insert_active
    linkageType: ''
    returnType: int
    signature: "int event_callback_activate_nolock_(struct event_base *base,\n    struct
      event_callback *evcb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_queue_insert_active_later
      Src: /src/libevent/event.c:3130,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:3131,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:3132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3123
    functionDepth: 2
    functionLinenumber: 3123
    functionLinenumberEnd: 3134
    functionName: event_callback_activate_later_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_NEED_NOTIFY
    - evthread_notify_base
    - event_queue_insert_active_later
    linkageType: ''
    returnType: int
    signature: "int event_callback_activate_later_nolock_(struct event_base *base,\n
      \   struct event_callback *evcb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event.c:3140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - base
    - cb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3142
    functionName: event_callback_init_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void event_callback_init_(struct event_base *base,\n    struct event_callback
      *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3149,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:3150,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3144
    functionDepth: 1
    functionLinenumber: 3144
    functionLinenumberEnd: 3153
    functionName: event_callback_cancel_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_callback_cancel_nolock_
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: "int event_callback_cancel_(struct event_base *base,\n    struct event_callback
      *evcb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:3163,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:3163,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3169,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:3173,1
    - Dst: event_queue_remove_active_later
      Src: /src/libevent/event.c:3176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - base
    - evcb
    - even_if_finalizing
    argTypes:
    - struct event_base*
    - struct event_callback*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3155
    functionDepth: 4
    functionLinenumber: 3155
    functionLinenumberEnd: 3183
    functionName: event_callback_cancel_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - EVUTIL_ASSERT
    - event_queue_remove_active
    - event_callback_to_event
    - event_del_nolock_
    - event_queue_remove_active_later
    linkageType: ''
    returnType: int
    signature: "int event_callback_cancel_nolock_(struct event_base *base,\n    struct
      event_callback *evcb, int even_if_finalizing)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event.c:3188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - cb
    - priority
    - fn
    - arg
    argTypes:
    - struct event_callback*
    - ev_uint8_t
    - deferred_cb_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3185
    functionDepth: 0
    functionLinenumber: 3185
    functionLinenumberEnd: 3193
    functionName: event_deferred_cb_init_
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void event_deferred_cb_init_(struct event_callback *cb, ev_uint8_t
      priority, deferred_cb_fn fn, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cb
    - priority
    argTypes:
    - struct event_callback*
    - ev_uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3195
    functionDepth: 0
    functionLinenumber: 3195
    functionLinenumberEnd: 3199
    functionName: event_deferred_cb_set_priority_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_deferred_cb_set_priority_(struct event_callback *cb, ev_uint8_t
      priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_callback_cancel_
      Src: /src/libevent/event.c:3206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - base
    - cb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3201
    functionDepth: 2
    functionLinenumber: 3201
    functionLinenumberEnd: 3207
    functionName: event_deferred_cb_cancel_
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - event_callback_cancel_
    linkageType: ''
    returnType: void
    signature: void event_deferred_cb_cancel_(struct event_base *base, struct event_callback
      *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3216,1
    - Dst: event_callback_activate_later_nolock_
      Src: /src/libevent/event.c:3218,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:3220,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - base
    - cb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3210
    functionDepth: 3
    functionLinenumber: 3210
    functionLinenumberEnd: 3227
    functionName: event_deferred_cb_schedule_
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached:
    - event_callback_activate_nolock_
    - event_callback_activate_later_nolock_
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_deferred_cb_schedule_(struct event_base *base, struct event_callback
      *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:3238,1
    - Dst: gettime
      Src: /src/libevent/event.c:3246,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:3251,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:3252,1
    - Dst: evutil_timersub
      Src: /src/libevent/event.c:3256,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3258,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3259,1
    - Dst: event_debug
      Src: /src/libevent/event.c:3260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - base
    - tv_p
    argTypes:
    - struct event_base*
    - struct timeval**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3229
    functionDepth: 2
    functionLinenumber: 3229
    functionLinenumberEnd: 3264
    functionName: timeout_next
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - min_heap_top_
    - evutil_timersub
    - EVUTIL_ASSERT
    - evutil_timercmp
    - evutil_timerclear
    - event_debug
    - gettime
    linkageType: ''
    returnType: int
    signature: int timeout_next(struct event_base *base, struct timeval **tv_p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_empty_
      Src: /src/libevent/event.c:3274,1
    - Dst: gettime
      Src: /src/libevent/event.c:3278,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:3280,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:3283,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:3287,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:3289,1
    - Dst: event_debug
      Src: /src/libevent/event.c:3291,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:3293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3267
    functionDepth: 4
    functionLinenumber: 3267
    functionLinenumberEnd: 3295
    functionName: timeout_process
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_active_nolock_
    - min_heap_top_
    - min_heap_empty_
    - evutil_timercmp
    - event_del_nolock_
    - event_queue_remove_timeout
    - event_debug
    - gettime
    linkageType: ''
    returnType: void
    signature: void timeout_process(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3298
    functionDepth: 0
    functionLinenumber: 3298
    functionLinenumberEnd: 3299
    functionName: MAX
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3301
    functionDepth: 0
    functionLinenumber: 3301
    functionLinenumberEnd: 3302
    functionName: MAX_EVENT_COUNT
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_EVENT_COUNT(var, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3307
    functionDepth: 0
    functionLinenumber: 3307
    functionLinenumberEnd: 3309
    functionName: DECR_EVENT_COUNT
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECR_EVENT_COUNT(base,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3313
      start: 3309
    functionDepth: 0
    functionLinenumber: 3309
    functionLinenumberEnd: 3313
    functionName: INCR_EVENT_COUNT
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCR_EVENT_COUNT(base,flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3317,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3318,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3319,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3320,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3314
    functionDepth: 2
    functionLinenumber: 3314
    functionLinenumberEnd: 3325
    functionName: event_queue_remove_inserted
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - DECR_EVENT_COUNT
    - EV_SOCK_ARG
    - EVENT_BASE_ASSERT_LOCKED
    - event_errx
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_inserted(struct event_base *base, struct event
      *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3329,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3330,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3331,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3335,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3326
    functionDepth: 2
    functionLinenumber: 3326
    functionLinenumberEnd: 3341
    functionName: event_queue_remove_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - DECR_EVENT_COUNT
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_REMOVE
    - event_errx
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_active(struct event_base *base, struct event_callback
      *evcb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3345,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3346,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3347,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3351,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3342
    functionDepth: 2
    functionLinenumber: 3342
    functionLinenumberEnd: 3356
    functionName: event_queue_remove_active_later
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - DECR_EVENT_COUNT
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_REMOVE
    - event_errx
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_active_later(struct event_base *base, struct
      event_callback *evcb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3360,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3361,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3362,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3363,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3366,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:3369,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3371,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3372,1
    - Dst: min_heap_erase_
      Src: /src/libevent/event.c:3375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3377
      start: 3357
    functionDepth: 2
    functionLinenumber: 3357
    functionLinenumberEnd: 3377
    functionName: event_queue_remove_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - get_common_timeout_list
    - DECR_EVENT_COUNT
    - is_common_timeout
    - EV_SOCK_ARG
    - EVENT_BASE_ASSERT_LOCKED
    - min_heap_erase_
    - TAILQ_REMOVE
    - event_errx
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_timeout(struct event_base *base, struct event
      *ev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_queue_insert_timeout
      Src: /src/libevent/event.c:3387,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3394,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3396,1
    - Dst: insert_common_timeout_inorder
      Src: /src/libevent/event.c:3397,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3401,1
    - Dst: min_heap_push_
      Src: /src/libevent/event.c:3403,1
    - Dst: min_heap_erase_
      Src: /src/libevent/event.c:3406,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3407,1
    - Dst: insert_common_timeout_inorder
      Src: /src/libevent/event.c:3408,1
    - Dst: min_heap_adjust_
      Src: /src/libevent/event.c:3411,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - base
    - ev
    - was_common
    - is_common
    - old_timeout_idx
    argTypes:
    - struct event_base*
    - struct event*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3381
    functionDepth: 3
    functionLinenumber: 3381
    functionLinenumberEnd: 3417
    functionName: event_queue_reinsert_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_queue_insert_timeout
    - insert_common_timeout_inorder
    - get_common_timeout_list
    - min_heap_adjust_
    - EVUTIL_ASSERT
    - min_heap_erase_
    - TAILQ_REMOVE
    - min_heap_push_
    linkageType: ''
    returnType: void
    signature: "void event_queue_reinsert_timeout(struct event_base *base, struct
      event *ev,\n    int was_common, int is_common, int old_timeout_idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_REVERSE
      Src: /src/libevent/event.c:3433,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3439,1
    - Dst: is_same_common_timeout
      Src: /src/libevent/event.c:3440,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:3441,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/libevent/event.c:3442,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/libevent/event.c:3447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctl
    - ev
    argTypes:
    - struct common_timeout_list*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3421
    functionDepth: 1
    functionLinenumber: 3421
    functionLinenumberEnd: 3449
    functionName: insert_common_timeout_inorder
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - TAILQ_FOREACH_REVERSE
    - TAILQ_INSERT_AFTER
    - EVUTIL_ASSERT
    - evutil_timercmp
    - is_same_common_timeout
    - TAILQ_INSERT_HEAD
    linkageType: ''
    returnType: void
    signature: "void insert_common_timeout_inorder(struct common_timeout_list *ctl,\n
      \   struct event *ev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3454,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3456,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3457,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3458,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3451
    functionDepth: 2
    functionLinenumber: 3451
    functionLinenumberEnd: 3465
    functionName: event_queue_insert_inserted
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - INCR_EVENT_COUNT
    - EV_SOCK_ARG
    - EVENT_BASE_ASSERT_LOCKED
    - event_errx
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_inserted(struct event_base *base, struct event
      *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3470,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3477,1
    - Dst: MAX_EVENT_COUNT
      Src: /src/libevent/event.c:3482,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3483,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:3484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3486
      start: 3467
    functionDepth: 1
    functionLinenumber: 3467
    functionLinenumberEnd: 3486
    functionName: event_queue_insert_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - MAX_EVENT_COUNT
    - EVUTIL_ASSERT
    - INCR_EVENT_COUNT
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_active(struct event_base *base, struct event_callback
      *evcb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3491,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3497,1
    - Dst: MAX_EVENT_COUNT
      Src: /src/libevent/event.c:3500,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3501,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:3502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3503
      start: 3488
    functionDepth: 1
    functionLinenumber: 3488
    functionLinenumberEnd: 3503
    functionName: event_queue_insert_active_later
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - MAX_EVENT_COUNT
    - EVUTIL_ASSERT
    - INCR_EVENT_COUNT
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_active_later(struct event_base *base, struct
      event_callback *evcb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3508,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3510,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3511,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3512,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3516,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:3520,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3522,1
    - Dst: insert_common_timeout_inorder
      Src: /src/libevent/event.c:3523,1
    - Dst: min_heap_push_
      Src: /src/libevent/event.c:3525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3505
    functionDepth: 2
    functionLinenumber: 3505
    functionLinenumberEnd: 3527
    functionName: event_queue_insert_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - insert_common_timeout_inorder
    - get_common_timeout_list
    - INCR_EVENT_COUNT
    - is_common_timeout
    - EV_SOCK_ARG
    - EVENT_BASE_ASSERT_LOCKED
    - min_heap_push_
    - event_errx
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_timeout(struct event_base *base, struct event
      *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3533,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:3535,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3536,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3538,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:3539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3542
      start: 3529
    functionDepth: 1
    functionLinenumber: 3529
    functionLinenumberEnd: 3542
    functionName: event_queue_make_later_events_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - EVUTIL_ASSERT
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_REMOVE
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void event_queue_make_later_events_active(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3550
      start: 3546
    functionDepth: 0
    functionLinenumber: 3546
    functionLinenumberEnd: 3550
    functionName: event_get_version
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      event_get_version(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3552
    functionDepth: 0
    functionLinenumber: 3552
    functionLinenumberEnd: 3556
    functionName: event_get_version_number
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_uint32_t
    signature: ev_uint32_t event_get_version_number(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3563
    functionDepth: 0
    functionLinenumber: 3563
    functionLinenumberEnd: 3567
    functionName: event_get_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      event_get_method(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc_fn_
      Src: /src/libevent/event.c:3581,1
    - Dst: malloc
      Src: /src/libevent/event.c:3583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3584
      start: 3574
    functionDepth: 0
    functionLinenumber: 3574
    functionLinenumberEnd: 3584
    functionName: event_mm_malloc_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_malloc_fn_
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      event_mm_malloc_(size_t sz)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc_fn_
      Src: /src/libevent/event.c:3597,1
    - Dst: memset
      Src: /src/libevent/event.c:3599,1
    - Dst: calloc
      Src: /src/libevent/event.c:3601,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3613
      start: 3586
    functionDepth: 0
    functionLinenumber: 3586
    functionLinenumberEnd: 3613
    functionName: event_mm_calloc_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_malloc_fn_
    - memset
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      event_mm_calloc_(size_t count, size_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/event.c:3624,1
    - Dst: mm_malloc_fn_
      Src: /src/libevent/event.c:3628,1
    - Dst: memcpy
      Src: /src/libevent/event.c:3630,1
    - Dst: _strdup
      Src: /src/libevent/event.c:3633,1
    - Dst: strdup
      Src: /src/libevent/event.c:3635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3615
    functionDepth: 0
    functionLinenumber: 3615
    functionLinenumberEnd: 3641
    functionName: event_mm_strdup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_malloc_fn_
    - _strdup
    - strlen
    - strdup
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      event_mm_strdup_(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc_fn_
      Src: /src/libevent/event.c:3647,1
    - Dst: realloc
      Src: /src/libevent/event.c:3649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3643
    functionDepth: 0
    functionLinenumber: 3643
    functionLinenumberEnd: 3650
    functionName: event_mm_realloc_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - realloc
    - mm_realloc_fn_
    linkageType: ''
    returnType: void
    signature: 'void *

      event_mm_realloc_(void *ptr, size_t sz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free_fn_
      Src: /src/libevent/event.c:3656,1
    - Dst: free
      Src: /src/libevent/event.c:3658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3659
      start: 3652
    functionDepth: 0
    functionLinenumber: 3652
    functionLinenumberEnd: 3659
    functionName: event_mm_free_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - free
    - mm_free_fn_
    linkageType: ''
    returnType: void
    signature: void event_mm_free_(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*malloc_fn)(size_t sz)
    - (*realloc_fn)(void *ptr, size_t sz)
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3669
      start: 3661
    functionDepth: 0
    functionLinenumber: 3661
    functionLinenumberEnd: 3669
    functionName: event_set_mem_functions
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void event_set_mem_functions(void *(*malloc_fn)(size_t sz),\n\t\t\tvoid
      *(*realloc_fn)(void *ptr, size_t sz),\n\t\t\tvoid (*free_fn)(void *ptr))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3677,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3680
      start: 3673
    functionDepth: 1
    functionLinenumber: 3673
    functionLinenumberEnd: 3680
    functionName: evthread_notify_drain_eventfd
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void evthread_notify_drain_eventfd(evutil_socket_t fd, short what,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/event.c:3689,1
    - Dst: read
      Src: /src/libevent/event.c:3692,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3696,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3683
    functionDepth: 1
    functionLinenumber: 3683
    functionLinenumberEnd: 3699
    functionName: evthread_notify_drain_default
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    - recv
    - read
    linkageType: ''
    returnType: void
    signature: void evthread_notify_drain_default(evutil_socket_t fd, short what,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3708,1
    - Dst: evthread_make_base_notifiable_nolock_
      Src: /src/libevent/event.c:3709,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3712
      start: 3701
    functionDepth: 1
    functionLinenumber: 3701
    functionLinenumberEnd: 3712
    functionName: evthread_make_base_notifiable
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - evthread_make_base_notifiable_nolock_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int evthread_make_base_notifiable(struct event_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_kq_add_notify_event_
      Src: /src/libevent/event.c:3726,1
    - Dst: evutil_eventfd_
      Src: /src/libevent/event.c:3735,1
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/event.c:3743,1
    - Dst: event_assign
      Src: /src/libevent/event.c:3753,1
    - Dst: event_priority_set
      Src: /src/libevent/event.c:3758,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:3760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3714
    functionDepth: 6
    functionLinenumber: 3714
    functionLinenumberEnd: 3761
    functionName: evthread_make_base_notifiable_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_add_nolock_
    - event_assign
    - evutil_eventfd_
    - evutil_make_internal_pipe_
    - event_kq_add_notify_event_
    - event_priority_set
    linkageType: ''
    returnType: int
    signature: int evthread_make_base_notifiable_nolock_(struct event_base *base)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evmap_foreach_event_
      Src: /src/libevent/event.c:3772,1
    - Dst: fn
      Src: /src/libevent/event.c:3783,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:3792,1
    - Dst: fn
      Src: /src/libevent/event.c:3798,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:3807,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:3814,1
    - Dst: fn
      Src: /src/libevent/event.c:3815,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - event_base_foreach_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3821
      start: 3763
    functionDepth: 2
    functionLinenumber: 3763
    functionLinenumberEnd: 3821
    functionName: event_base_foreach_event_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evmap_foreach_event_
    - fn
    - TAILQ_FOREACH
    - event_callback_to_event
    linkageType: ''
    returnType: int
    signature: "int event_base_foreach_event_nolock_(struct event_base *base,\n    event_base_foreach_event_cb
      fn, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/event.c:3835,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3836,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:3848,1
    - Dst: fprintf
      Src: /src/libevent/event.c:3849,1
    - Dst: fputc
      Src: /src/libevent/event.c:3852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - base
    - e
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3825
    functionDepth: 1
    functionLinenumber: 3825
    functionLinenumberEnd: 3855
    functionName: dump_inserted_event_fn
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EV_SOCK_ARG
    - fprintf
    - fputc
    - evutil_timeradd
    linkageType: ''
    returnType: int
    signature: int dump_inserted_event_fn(const struct event_base *base, const struct
      event *e, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/event.c:3869,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - base
    - e
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3880
      start: 3859
    functionDepth: 1
    functionLinenumber: 3859
    functionLinenumberEnd: 3880
    functionName: dump_active_event_fn
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EV_SOCK_ARG
    - fprintf
    linkageType: ''
    returnType: int
    signature: int dump_active_event_fn(const struct event_base *base, const struct
      event *e, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3890,1
    - Dst: event_base_foreach_event_nolock_
      Src: /src/libevent/event.c:3891,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - event_base_foreach_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3894
      start: 3882
    functionDepth: 3
    functionLinenumber: 3882
    functionLinenumberEnd: 3894
    functionName: event_base_foreach_event
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_base_foreach_event_nolock_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: "int event_base_foreach_event(struct event_base *base,\n    event_base_foreach_event_cb
      fn, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3900,1
    - Dst: fprintf
      Src: /src/libevent/event.c:3901,1
    - Dst: event_base_foreach_event_nolock_
      Src: /src/libevent/event.c:3902,1
    - Dst: fprintf
      Src: /src/libevent/event.c:3904,1
    - Dst: event_base_foreach_event_nolock_
      Src: /src/libevent/event.c:3905,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - base
    - output
    argTypes:
    - struct event_base*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3897
    functionDepth: 3
    functionLinenumber: 3897
    functionLinenumberEnd: 3907
    functionName: event_base_dump_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - fprintf
    - event_base_foreach_event_nolock_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_dump_events(struct event_base *base, FILE *output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3912,1
    - Dst: evmap_io_active_
      Src: /src/libevent/event.c:3916,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:3927,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:3933,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:3936,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3942,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - base
    - fd
    - events
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3943
      start: 3909
    functionDepth: 2
    functionLinenumber: 3909
    functionLinenumberEnd: 3943
    functionName: event_base_active_by_fd
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_active_nolock_
    - EVBASE_ACQUIRE_LOCK
    - evmap_io_active_
    - EVBASE_RELEASE_LOCK
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void event_base_active_by_fd(struct event_base *base, evutil_socket_t
      fd, short events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3948,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/event.c:3949,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - sig
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3951
      start: 3945
    functionDepth: 2
    functionLinenumber: 3945
    functionLinenumberEnd: 3951
    functionName: event_base_active_by_signal
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - evmap_signal_active_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_active_by_signal(struct event_base *base, int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3957,1
    - Dst: MAX_EVENT_COUNT
      Src: /src/libevent/event.c:3959,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3961
      start: 3954
    functionDepth: 1
    functionLinenumber: 3954
    functionLinenumberEnd: 3961
    functionName: event_base_add_virtual_
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - MAX_EVENT_COUNT
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_add_virtual_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3966,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3967,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:3969,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:3970,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3972
      start: 3963
    functionDepth: 2
    functionLinenumber: 3963
    functionLinenumberEnd: 3972
    functionName: event_base_del_virtual_
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - evthread_notify_base
    - EVBASE_ACQUIRE_LOCK
    - EVUTIL_ASSERT
    - EVBASE_RELEASE_LOCK
    - EVBASE_NEED_NOTIFY
    linkageType: ''
    returnType: void
    signature: void event_base_del_virtual_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/event.c:3980,1
    - Dst: evthreadimpl_disable_lock_debugging_
      Src: /src/libevent/event.c:3982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3974
    functionDepth: 1
    functionLinenumber: 3974
    functionLinenumberEnd: 3987
    functionName: event_free_debug_globals_locks
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evthreadimpl_disable_lock_debugging_
    - EVTHREAD_FREE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_free_debug_globals_locks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free_debug_globals_locks
      Src: /src/libevent/event.c:3992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3993
      start: 3989
    functionDepth: 2
    functionLinenumber: 3989
    functionLinenumberEnd: 3993
    functionName: event_free_debug_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_free_debug_globals_locks
    linkageType: ''
    returnType: void
    signature: void event_free_debug_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_free_globals_
      Src: /src/libevent/event.c:3998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3999
      start: 3995
    functionDepth: 1
    functionLinenumber: 3995
    functionLinenumberEnd: 3999
    functionName: event_free_evsig_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evsig_free_globals_
    linkageType: ''
    returnType: void
    signature: void event_free_evsig_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_free_globals_
      Src: /src/libevent/event.c:4004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4005
      start: 4001
    functionDepth: 3
    functionLinenumber: 4001
    functionLinenumberEnd: 4005
    functionName: event_free_evutil_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evutil_free_globals_
    linkageType: ''
    returnType: void
    signature: void event_free_evutil_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free_debug_globals
      Src: /src/libevent/event.c:4010,1
    - Dst: event_free_evsig_globals
      Src: /src/libevent/event.c:4011,1
    - Dst: event_free_evutil_globals
      Src: /src/libevent/event.c:4012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 4007
    functionDepth: 4
    functionLinenumber: 4007
    functionLinenumberEnd: 4013
    functionName: event_free_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_free_evsig_globals
    - event_free_evutil_globals
    - event_free_debug_globals
    linkageType: ''
    returnType: void
    signature: void event_free_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_disable_debug_mode
      Src: /src/libevent/event.c:4018,1
    - Dst: event_free_globals
      Src: /src/libevent/event.c:4019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 4015
    functionDepth: 5
    functionLinenumber: 4015
    functionLinenumberEnd: 4020
    functionName: libevent_global_shutdown
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_free_globals
    - event_disable_debug_mode
    linkageType: ''
    returnType: void
    signature: void libevent_global_shutdown(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/event.c:4027,1
    - Dst: evsig_global_setup_locks_
      Src: /src/libevent/event.c:4029,1
    - Dst: evutil_global_setup_locks_
      Src: /src/libevent/event.c:4031,1
    - Dst: evutil_secure_rng_global_setup_locks_
      Src: /src/libevent/event.c:4033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 4023
    functionDepth: 2
    functionLinenumber: 4023
    functionLinenumberEnd: 4036
    functionName: event_global_setup_locks_
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - EVTHREAD_SETUP_GLOBAL_LOCK
    - evutil_global_setup_locks_
    - evutil_secure_rng_global_setup_locks_
    - evsig_global_setup_locks_
    linkageType: ''
    returnType: int
    signature: int event_global_setup_locks_(const int enable_locks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:4042,1
    - Dst: event_base_assert_ok_nolock_
      Src: /src/libevent/event.c:4043,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:4044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 4039
    functionDepth: 1
    functionLinenumber: 4039
    functionLinenumberEnd: 4045
    functionName: event_base_assert_ok_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_assert_ok_nolock_
    - EVBASE_RELEASE_LOCK
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_assert_ok_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evmap_check_integrity_
      Src: /src/libevent/event.c:4055,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4063,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4064,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:4064,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4065,1
    - Dst: EVUTIL_ASSERT_TAILQ_OK
      Src: /src/libevent/event.c:4073,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:4075,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4077,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:4077,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4078,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4079,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:4079,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4080,1
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:4080,1
    - Dst: EVUTIL_ASSERT_TAILQ_OK
      Src: /src/libevent/event.c:4089,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:4090,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4091,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4092,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:4099,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4100,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4105
      start: 4047
    functionDepth: 4
    functionLinenumber: 4047
    functionLinenumberEnd: 4105
    functionName: event_base_assert_ok_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT_TAILQ_OK
    - EVUTIL_ASSERT
    - COMMON_TIMEOUT_IDX
    - evutil_timercmp
    - is_common_timeout
    - evmap_check_integrity_
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void event_base_assert_ok_nolock_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/signalfd.c:57,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:59,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:60,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:61,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/signalfd.c:63,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/signalfd.c:64,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/signalfd.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: sigfd_cb
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVUTIL_ASSERT
    - EVBASE_RELEASE_LOCK
    - read
    - evmap_signal_active_
    linkageType: ''
    returnType: void
    signature: void sigfd_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:74,1
    - Dst: event_del_nolock_
      Src: /src/libevent/signalfd.c:75,1
    - Dst: close
      Src: /src/libevent/signalfd.c:76,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:77,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - base
    - signo
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: sigfd_free_sigevent
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - mm_free
    - EVUTIL_ASSERT
    - close
    - event_del_nolock_
    linkageType: ''
    returnType: void
    signature: void sigfd_free_sigevent(struct event_base *base, int signo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:92,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:94,1
    - Dst: sigfd_free_sigevent
      Src: /src/libevent/signalfd.c:107,1
    - Dst: evsig_ensure_saved_
      Src: /src/libevent/signalfd.c:116,1
    - Dst: mm_malloc
      Src: /src/libevent/signalfd.c:119,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:121,1
    - Dst: sigaction
      Src: /src/libevent/signalfd.c:125,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:126,1
    - Dst: sigemptyset
      Src: /src/libevent/signalfd.c:132,1
    - Dst: sigaddset
      Src: /src/libevent/signalfd.c:133,1
    - Dst: sigprocmask
      Src: /src/libevent/signalfd.c:134,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:135,1
    - Dst: signalfd
      Src: /src/libevent/signalfd.c:139,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:141,1
    - Dst: event_new
      Src: /src/libevent/signalfd.c:146,1
    - Dst: event_priority_set
      Src: /src/libevent/signalfd.c:152,1
    - Dst: event_add_nolock_
      Src: /src/libevent/signalfd.c:154,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:160,1
    - Dst: close
      Src: /src/libevent/signalfd.c:162,1
    - Dst: sigprocmask
      Src: /src/libevent/signalfd.c:164,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:166,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 5
    argNames:
    - base
    - signo
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 169
    functionName: sigfd_add
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - event_add_nolock_
    - evsig_ensure_saved_
    - event_warn
    - sigfd_free_sigevent
    - sigprocmask
    - EVUTIL_ASSERT
    - event_priority_set
    - sigaction
    - sigemptyset
    - event_new
    - mm_free
    - close
    - signalfd
    - sigaddset
    linkageType: ''
    returnType: int
    signature: int sigfd_add(struct event_base *base, int signo, short old, short
      events, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:178,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:180,1
    - Dst: sigemptyset
      Src: /src/libevent/signalfd.c:182,1
    - Dst: sigaddset
      Src: /src/libevent/signalfd.c:183,1
    - Dst: sigprocmask
      Src: /src/libevent/signalfd.c:184,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:185,1
    - Dst: sigaction
      Src: /src/libevent/signalfd.c:193,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:194,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:197,1
    - Dst: sigfd_free_sigevent
      Src: /src/libevent/signalfd.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - base
    - signo
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 204
    functionName: sigfd_del
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - event_warn
    - sigprocmask
    - sigfd_free_sigevent
    - EVUTIL_ASSERT
    - sigaction
    - sigemptyset
    - mm_free
    - sigaddset
    linkageType: ''
    returnType: int
    signature: int sigfd_del(struct event_base *base, int signo, short old, short
      events, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:208,1
    - Dst: getenv
      Src: /src/libevent/signalfd.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: sigfd_init_
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - getenv
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: int
    signature: int sigfd_init_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:74,1
    - Dst: evtag_init
      Src: /src/libevent/evrpc.c:79,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:81,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:82,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:83,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - http_server
    argTypes:
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: evrpc_init
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_INIT
    - evtag_init
    - mm_calloc
    linkageType: ''
    returnType: struct evrpc_base
    signature: 'struct evrpc_base *

      evrpc_init(struct evhttp *http_server)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:100,1
    - Dst: evrpc_unregister_rpc
      Src: /src/libevent/evrpc.c:101,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:102,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:104,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:105,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:106,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:108,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:109,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:110,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:112,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:113,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:114,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evrpc_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: evrpc_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - EVUTIL_ASSERT
    - evrpc_unregister_rpc
    - TAILQ_REMOVE
    - mm_free
    - evrpc_remove_hook
    linkageType: ''
    returnType: void
    signature: void evrpc_free(struct evrpc_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:136,1
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:140,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - vbase
    - hook_type
    - cb_arg
    argTypes:
    - void*
    - enum EVRPC_HOOK_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 149
    functionName: evrpc_add_hook
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - mm_calloc
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: "void *\nevrpc_add_hook(void *vbase,\n    enum EVRPC_HOOK_TYPE hook_type,\n
      \   int (*cb)(void *, struct evhttp_request *, struct evbuffer *, void *),\n
      \   void *cb_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:157,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - head
    - handle
    argTypes:
    - struct evrpc_hook_list*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: evrpc_remove_hook_internal
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evrpc_remove_hook_internal(struct evrpc_hook_list *head, void *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:157,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 13
    functionsReached:
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(hook, head, next)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:183,1
    - Dst: evrpc_remove_hook_internal
      Src: /src/libevent/evrpc.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - vbase
    - hook_type
    - handle
    argTypes:
    - void*
    - enum EVRPC_HOOK_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 187
    functionName: evrpc_remove_hook
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - evrpc_remove_hook_internal
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: int
    signature: int evrpc_remove_hook(void *vbase, enum EVRPC_HOOK_TYPE hook_type,
      void *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct evrpc_hook*::process
      Src: /src/libevent/evrpc.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - head
    - ctx
    - req
    - evbuf
    argTypes:
    - struct evrpc_hook_list*
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: evrpc_process_hooks
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - struct evrpc_hook*::process
    linkageType: ''
    returnType: int
    signature: "int evrpc_process_hooks(struct evrpc_hook_list *head, void *ctx,\n
      \   struct evhttp_request *req, struct evbuffer *evbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/libevent/evrpc.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 13
    functionsReached:
    - process
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(hook, head, next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evrpc.c:218,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:218,1
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:219,1
    - Dst: event_err
      Src: /src/libevent/evrpc.c:220,1
    - Dst: memcpy
      Src: /src/libevent/evrpc.c:222,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:222,1
    - Dst: memcpy
      Src: /src/libevent/evrpc.c:223,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:223,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: evrpc_construct_uri
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - event_err
    - strlen
    - mm_malloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      evrpc_construct_uri(const char *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_construct_uri
      Src: /src/libevent/evrpc.c:233,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:239,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/evrpc.c:241,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - base
    - rpc
    - cb_arg
    argTypes:
    - struct evrpc_base*
    - struct evrpc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: evrpc_register_rpc
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evhttp_set_cb
    - TAILQ_INSERT_TAIL
    - evrpc_construct_uri
    - mm_free
    linkageType: ''
    returnType: int
    signature: "int evrpc_register_rpc(struct evrpc_base *base, struct evrpc *rpc,\n
      \   void (*cb)(struct evrpc_req_generic *, void *), void *cb_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:259,1
    - Dst: strcmp
      Src: /src/libevent/evrpc.c:260,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:267,1
    - Dst: evrpc_construct_uri
      Src: /src/libevent/evrpc.c:269,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/evrpc.c:272,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:273,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:275,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:277,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - base
    - name
    argTypes:
    - struct evrpc_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 280
    functionName: evrpc_unregister_rpc
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - evrpc_construct_uri
    - strcmp
    - TAILQ_REMOVE
    - mm_free
    - TAILQ_FOREACH
    - evhttp_del_cb
    linkageType: ''
    returnType: int
    signature: int evrpc_unregister_rpc(struct evrpc_base *base, const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/evrpc.c:294,1
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:297,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:304,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:307,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:314,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:320,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:326,1
    - Dst: evrpc_request_cb_closure
      Src: /src/libevent/evrpc.c:332,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:337,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:338,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 340
    functionName: evrpc_request_cb
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - mm_calloc
    - evrpc_process_hooks
    - evrpc_hook_associate_meta_
    - EVUTIL_ASSERT
    - evrpc_request_cb_closure
    - evbuffer_get_length
    - evrpc_pause_request
    - evhttp_send_error
    - evrpc_reqstate_free_
    linkageType: ''
    returnType: void
    signature: void evrpc_request_cb(struct evhttp_request *req, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:349,1
    - Dst: struct evrpc*::request_new
      Src: /src/libevent/evrpc.c:357,1
    - Dst: struct evrpc*::request_unmarshal
      Src: /src/libevent/evrpc.c:361,1
    - Dst: struct evrpc*::reply_new
      Src: /src/libevent/evrpc.c:369,1
    - Dst: struct evrpc*::cb
      Src: /src/libevent/evrpc.c:374,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:379,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 342
    functionDepth: 5
    functionLinenumber: 342
    functionLinenumberEnd: 382
    functionName: evrpc_request_cb_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - struct evrpc*::reply_new
    - EVUTIL_ASSERT
    - struct evrpc*::cb
    - struct evrpc*::request_unmarshal
    - evrpc_reqstate_free_
    - evhttp_send_error
    - struct evrpc*::request_new
    linkageType: ''
    returnType: void
    signature: void evrpc_request_cb_closure(void *arg, enum EVRPC_HOOK_RESULT hook_res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:389,1
    - Dst: evrpc_hook_context_free_
      Src: /src/libevent/evrpc.c:394,1
    - Dst: struct evrpc*::request_free
      Src: /src/libevent/evrpc.c:396,1
    - Dst: struct evrpc*::reply_free
      Src: /src/libevent/evrpc.c:398,1
    - Dst: evbuffer_free
      Src: /src/libevent/evrpc.c:400,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - rpc_state
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 402
    functionName: evrpc_reqstate_free_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 2
    functionsReached:
    - struct evrpc*::request_free
    - EVUTIL_ASSERT
    - evrpc_hook_context_free_
    - struct evrpc*::reply_free
    - evbuffer_free
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evrpc_reqstate_free_(struct evrpc_req_generic* rpc_state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:413,1
    - Dst: struct evrpc*::reply_complete
      Src: /src/libevent/evrpc.c:418,1
    - Dst: evbuffer_new
      Src: /src/libevent/evrpc.c:423,1
    - Dst: struct evrpc*::reply_marshal
      Src: /src/libevent/evrpc.c:429,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:431,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:434,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:439,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:445,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:452,1
    - Dst: evrpc_request_done_closure
      Src: /src/libevent/evrpc.c:458,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:462,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:463,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - rpc_state
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 407
    functionDepth: 5
    functionLinenumber: 407
    functionLinenumberEnd: 465
    functionName: evrpc_request_done
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - struct evrpc*::reply_marshal
    - evbuffer_new
    - evrpc_process_hooks
    - evrpc_hook_associate_meta_
    - EVUTIL_ASSERT
    - struct evrpc*::reply_complete
    - evrpc_pause_request
    - evrpc_request_done_closure
    - evhttp_send_error
    - evrpc_reqstate_free_
    linkageType: ''
    returnType: void
    signature: void evrpc_request_done(struct evrpc_req_generic *rpc_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 471
    functionName: evrpc_get_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      evrpc_get_request(struct evrpc_req_generic *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: evrpc_get_reply
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      evrpc_get_reply(struct evrpc_req_generic *req)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:484,1
    - Dst: evhttp_find_header
      Src: /src/libevent/evrpc.c:491,1
    - Dst: evhttp_add_header
      Src: /src/libevent/evrpc.c:492,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/evrpc.c:495,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:497,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:502,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 479
    functionDepth: 6
    functionLinenumber: 479
    functionLinenumberEnd: 505
    functionName: evrpc_request_done_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - evhttp_send_reply
    - evhttp_add_header
    - evhttp_find_header
    - evhttp_send_error
    - evrpc_reqstate_free_
    linkageType: ''
    returnType: void
    signature: void evrpc_request_done_closure(void *arg, enum EVRPC_HOOK_RESULT hook_res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:516,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:520,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:521,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:523,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:525,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 532
    functionName: evrpc_pool_new
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_INIT
    - mm_calloc
    linkageType: ''
    returnType: struct evrpc_pool
    signature: 'struct evrpc_pool *

      evrpc_pool_new(struct event_base *base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_context_free_
      Src: /src/libevent/evrpc.c:538,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:539,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: evrpc_request_wrapper_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_hook_context_free_
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evrpc_request_wrapper_free(struct evrpc_request_wrapper *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:552,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:553,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:554,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:557,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:558,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:559,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:562,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:563,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/evrpc.c:564,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:567,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:568,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:569,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:572,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:573,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:574,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 578
    functionName: evrpc_pool_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evrpc_request_wrapper_free
    - EVUTIL_ASSERT
    - evhttp_connection_free
    - TAILQ_REMOVE
    - mm_free
    - evrpc_remove_hook
    linkageType: ''
    returnType: void
    signature: void evrpc_pool_free(struct evrpc_pool *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:589,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:590,1
    - Dst: evhttp_connection_set_base
      Src: /src/libevent/evrpc.c:596,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/evrpc.c:603,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:610,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:612,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:613,1
    - Dst: evrpc_schedule_request
      Src: /src/libevent/evrpc.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - connection
    argTypes:
    - struct evrpc_pool*
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 616
    functionName: evrpc_pool_add_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - EVUTIL_ASSERT
    - evhttp_connection_set_timeout
    - evhttp_connection_set_base
    - evrpc_schedule_request
    - TAILQ_REMOVE
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: "void evrpc_pool_add_connection(struct evrpc_pool *pool,\n    struct
      evhttp_connection *connection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - connection
    argTypes:
    - struct evrpc_pool*
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 623
    functionName: evrpc_pool_remove_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void evrpc_pool_remove_connection(struct evrpc_pool *pool,\n    struct
      evhttp_connection *connection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:629,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/evrpc.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - timeout_in_secs
    argTypes:
    - struct evrpc_pool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 633
    functionName: evrpc_pool_set_timeout
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_set_timeout
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void evrpc_pool_set_timeout(struct evrpc_pool *pool, int timeout_in_secs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:647,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 653
    functionName: evrpc_pool_find_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evrpc_pool_find_connection(struct evrpc_pool *pool)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/evrpc.c:672,1
    - Dst: struct evrpc_request_wrapper*::request_marshal
      Src: /src/libevent/evrpc.c:676,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:684,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:687,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:692,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:700,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:708,1
    - Dst: evrpc_schedule_request_closure
      Src: /src/libevent/evrpc.c:714,1
    - Dst: memset
      Src: /src/libevent/evrpc.c:718,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:721,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - connection
    - ctx
    argTypes:
    - struct evhttp_connection*
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 723
    functionName: evrpc_schedule_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - evrpc_request_wrapper_free
    - evrpc_process_hooks
    - evrpc_hook_associate_meta_
    - EVUTIL_ASSERT
    - evhttp_request_new
    - struct evrpc_request_wrapper*::request_marshal
    - evrpc_pause_request
    - memset
    - evrpc_schedule_request_closure
    linkageType: ''
    returnType: int
    signature: "int evrpc_schedule_request(struct evhttp_connection *connection,\n
      \   struct evrpc_request_wrapper *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_construct_uri
      Src: /src/libevent/evrpc.c:739,1
    - Dst: evutil_timerclear
      Src: /src/libevent/evrpc.c:748,1
    - Dst: evtimer_add
      Src: /src/libevent/evrpc.c:750,1
    - Dst: evhttp_make_request
      Src: /src/libevent/evrpc.c:754,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:755,1
    - Dst: memset
      Src: /src/libevent/evrpc.c:763,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 725
    functionDepth: 6
    functionLinenumber: 725
    functionLinenumberEnd: 767
    functionName: evrpc_schedule_request_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - evrpc_request_wrapper_free
    - evrpc_construct_uri
    - evutil_timerclear
    - evhttp_make_request
    - mm_free
    - memset
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void evrpc_schedule_request_closure(void *arg, enum EVRPC_HOOK_RESULT
      hook_res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:775,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vbase
    - ctx
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 784
    functionName: evrpc_pause_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 3
    functionsReached:
    - mm_malloc
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evrpc_pause_request(void *vbase, void *ctx,\n    void (*cb)(void
      *, enum EVRPC_HOOK_RESULT))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:802,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - vbase
    - ctx
    - res
    argTypes:
    - void*
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 805
    functionName: evrpc_resume_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evrpc_resume_request(void *vbase, void *ctx, enum EVRPC_HOOK_RESULT
      res)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 796
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(pause, head, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_assign
      Src: /src/libevent/evrpc.c:813,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:816,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:816,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:822,1
    - Dst: evrpc_pool_schedule
      Src: /src/libevent/evrpc.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 827
    functionName: evrpc_make_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - EVUTIL_ASSERT
    - evtimer_assign
    - evrpc_pool_schedule
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: int evrpc_make_request(struct evrpc_request_wrapper *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:841,1
    - Dst: mm_strdup
      Src: /src/libevent/evrpc.c:848,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - pool
    - request
    - reply
    - rpcname
    - cbarg
    argTypes:
    - struct evrpc_pool*
    - void*
    - void*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 862
    functionName: evrpc_make_request_ctx
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - mm_strdup
    - mm_free
    linkageType: ''
    returnType: struct evrpc_request_wrapper
    signature: "struct evrpc_request_wrapper *\nevrpc_make_request_ctx(\n\tstruct
      evrpc_pool *pool, void *request, void *reply,\n\tconst char *rpcname,\n\tvoid
      (*req_marshal)(struct evbuffer*, void *),\n\tvoid (*rpl_clear)(void *),\n\tint
      (*rpl_unmarshal)(void *, struct evbuffer *),\n\tvoid (*cb)(struct evrpc_status
      *, void *, void *, void *),\n\tvoid *cbarg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/evrpc.c:875,1
    - Dst: evrpc_reply_done_closure
      Src: /src/libevent/evrpc.c:881,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:885,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:886,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:891,1
    - Dst: evhttp_request_own
      Src: /src/libevent/evrpc.c:905,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:907,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:911,1
    - Dst: evrpc_reply_done_closure
      Src: /src/libevent/evrpc.c:917,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:922,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 867
    functionDepth: 4
    functionLinenumber: 867
    functionLinenumberEnd: 923
    functionName: evrpc_reply_done
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evrpc_request_wrapper_free
    - evrpc_process_hooks
    - evrpc_hook_associate_meta_
    - EVUTIL_ASSERT
    - evrpc_reply_done_closure
    - evhttp_request_own
    - event_del
    - evrpc_pause_request
    linkageType: ''
    returnType: void
    signature: void evrpc_reply_done(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evrpc.c:934,1
    - Dst: struct evrpc_request_wrapper*::reply_unmarshal
      Src: /src/libevent/evrpc.c:943,1
    - Dst: struct evrpc_request_wrapper*::reply_clear
      Src: /src/libevent/evrpc.c:950,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:955,1
    - Dst: evhttp_request_is_owned
      Src: /src/libevent/evrpc.c:959,1
    - Dst: evhttp_request_free
      Src: /src/libevent/evrpc.c:960,1
    - Dst: evrpc_pool_schedule
      Src: /src/libevent/evrpc.c:963,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 925
    functionDepth: 3
    functionLinenumber: 925
    functionLinenumberEnd: 964
    functionName: evrpc_reply_done_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - evrpc_request_wrapper_free
    - evhttp_request_is_owned
    - evhttp_request_free
    - struct evrpc_request_wrapper*::reply_unmarshal
    - evrpc_pool_schedule
    - struct evrpc_request_wrapper*::reply_clear
    - memset
    linkageType: ''
    returnType: void
    signature: void evrpc_reply_done_closure(void *arg, enum EVRPC_HOOK_RESULT hook_res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:969,1
    - Dst: evrpc_pool_find_connection
      Src: /src/libevent/evrpc.c:976,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:977,1
    - Dst: evrpc_schedule_request
      Src: /src/libevent/evrpc.c:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 980
    functionName: evrpc_pool_schedule
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 2
    functionsReached:
    - TAILQ_FIRST
    - evrpc_schedule_request
    - evrpc_pool_find_connection
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evrpc_pool_schedule(struct evrpc_pool *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:987,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/evrpc.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 990
    functionName: evrpc_request_timeout
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evhttp_connection_fail_
    linkageType: ''
    returnType: void
    signature: void evrpc_request_timeout(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:1004,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:1005,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1006,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1007,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - meta_data
    argTypes:
    - struct evrpc_meta_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1010
    functionName: evrpc_meta_data_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - TAILQ_REMOVE
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evrpc_meta_data_free(struct evrpc_meta_list *meta_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:1016,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1024
    functionName: evrpc_hook_meta_new_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_INIT
    - mm_malloc
    linkageType: ''
    returnType: struct evrpc_hook_meta
    signature: 'struct evrpc_hook_meta *

      evrpc_hook_meta_new_(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_meta_new_
      Src: /src/libevent/evrpc.c:1032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pctx
    - evcon
    argTypes:
    - struct evrpc_hook_meta**
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1037
    functionName: evrpc_hook_associate_meta_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 4
    functionsReached:
    - evrpc_hook_meta_new_
    linkageType: ''
    returnType: int
    signature: "int evrpc_hook_associate_meta_(struct evrpc_hook_meta **pctx,\n    struct
      evhttp_connection *evcon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_meta_data_free
      Src: /src/libevent/evrpc.c:1042,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct evrpc_hook_meta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1044
    functionName: evrpc_hook_context_free_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 2
    functionsReached:
    - mm_free
    - evrpc_meta_data_free
    linkageType: ''
    returnType: void
    signature: void evrpc_hook_context_free_(struct evrpc_hook_meta *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_meta_new_
      Src: /src/libevent/evrpc.c:1056,1
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:1061,1
    - Dst: mm_strdup
      Src: /src/libevent/evrpc.c:1064,1
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:1068,1
    - Dst: memcpy
      Src: /src/libevent/evrpc.c:1071,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:1073,1
    - Dst: evrpc_hook_context_free_
      Src: /src/libevent/evrpc.c:1077,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1079,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1080,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1081,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - key
    - data
    - data_size
    argTypes:
    - void*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1084
    functionName: evrpc_hook_add_meta
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - evrpc_hook_meta_new_
    - evrpc_hook_context_free_
    - mm_strdup
    - mm_free
    - TAILQ_INSERT_TAIL
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int evrpc_hook_add_meta(void *ctx, const char *key,\n    const void
      *data, size_t data_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:1095,1
    - Dst: strcmp
      Src: /src/libevent/evrpc.c:1096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - key
    - data
    - data_size
    argTypes:
    - void*
    - char*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1104
    functionName: evrpc_hook_find_meta
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - strcmp
    linkageType: ''
    returnType: int
    signature: int evrpc_hook_find_meta(void *ctx, const char *key, void **data, size_t
      *data_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1111
    functionName: evrpc_hook_get_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evrpc_hook_get_connection(void *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_make_request_ctx
      Src: /src/libevent/evrpc.c:1125,1
    - Dst: evrpc_make_request
      Src: /src/libevent/evrpc.c:1129,1
    - Dst: memset
      Src: /src/libevent/evrpc.c:1131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - pool
    - request
    - reply
    - cb_arg
    - rpcname
    argTypes:
    - struct evrpc_pool*
    - void*
    - void*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1135
    functionName: evrpc_send_request_generic
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_make_request
    - memset
    - evrpc_make_request_ctx
    linkageType: ''
    returnType: int
    signature: "int evrpc_send_request_generic(struct evrpc_pool *pool,\n    void
      *request, void *reply,\n    void (*cb)(struct evrpc_status *, void *, void *,
      void *),\n    void *cb_arg,\n    const char *rpcname,\n    void (*req_marshal)(struct
      evbuffer *, void *),\n    void (*rpl_clear)(void *),\n    int (*rpl_unmarshal)(void
      *, struct evbuffer *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:1146,1
    - Dst: mm_strdup
      Src: /src/libevent/evrpc.c:1149,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - name
    - (*req_new)(void*)
    - req_new_arg
    - (*rpl_new)(void*)
    - rpl_new_arg
    argTypes:
    - char*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1164
    functionName: evrpc_register_object
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_strdup
    - mm_calloc
    - mm_free
    linkageType: ''
    returnType: struct evrpc
    signature: "struct evrpc *\nevrpc_register_object(const char *name,\n    void
      *(*req_new)(void*), void *req_new_arg, void (*req_free)(void *),\n    int (*req_unmarshal)(void
      *, struct evbuffer *),\n    void *(*rpl_new)(void*), void *rpl_new_arg, void
      (*rpl_free)(void *),\n    int (*rpl_complete)(void *),\n    void (*rpl_marshal)(struct
      evbuffer *, void *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_register_object
      Src: /src/libevent/evrpc.c:1176,1
    - Dst: evrpc_register_rpc
      Src: /src/libevent/evrpc.c:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - base
    - name
    - cbarg
    - (*req_new)(void *)
    - req_new_arg
    - (*rpl_new)(void *)
    - rpl_new_arg
    argTypes:
    - struct evrpc_base*
    - char*
    - void*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1166
    functionDepth: 4
    functionLinenumber: 1166
    functionLinenumberEnd: 1183
    functionName: evrpc_register_generic
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_register_rpc
    - evrpc_register_object
    linkageType: ''
    returnType: int
    signature: "int evrpc_register_generic(struct evrpc_base *base, const char *name,\n
      \   void (*callback)(struct evrpc_req_generic *, void *), void *cbarg,\n    void
      *(*req_new)(void *), void *req_new_arg, void (*req_free)(void *),\n    int (*req_unmarshal)(void
      *, struct evbuffer *),\n    void *(*rpl_new)(void *), void *rpl_new_arg, void
      (*rpl_free)(void *),\n    int (*rpl_complete)(void *),\n    void (*rpl_marshal)(struct
      evbuffer *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1190
    functionName: evrpc_request_get_pool
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evrpc_pool
    signature: 'struct evrpc_pool *

      evrpc_request_get_pool(struct evrpc_request_wrapper *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pool
    argTypes:
    - struct evrpc_request_wrapper*
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1197
    functionName: evrpc_request_set_pool
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evrpc_request_set_pool(struct evrpc_request_wrapper *ctx,\n    struct
      evrpc_pool *pool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cb_arg
    argTypes:
    - struct evrpc_request_wrapper*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1206
    functionName: evrpc_request_set_cb
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evrpc_request_set_cb(struct evrpc_request_wrapper *ctx,\n    void
      (*cb)(struct evrpc_status*, void *request, void *reply, void *arg),\n    void
      *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: bufferevent_socket_get_conn_address_
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - BEV_UPCAST
    linkageType: ''
    returnType: struct sockaddr
    signature: 'struct sockaddr *

      bufferevent_socket_get_conn_address_(struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:110,1
    - Dst: getpeername
      Src: /src/libevent/bufferevent_sock.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: bufferevent_socket_set_conn_address_fd_
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - getpeername
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: "void bufferevent_socket_set_conn_address_fd_(struct bufferevent *bev,\n\tevutil_socket_t
      fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:123,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_sock.c:124,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_sock.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bev
    - addr
    - addrlen
    argTypes:
    - struct bufferevent*
    - struct sockaddr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: bufferevent_socket_set_conn_address_
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - memcpy
    - EVUTIL_ASSERT
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: "void bufferevent_socket_set_conn_address_(struct bufferevent *bev,\n\tstruct
      sockaddr *addr, size_t addrlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:134,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent_sock.c:138,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_sock.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: bufferevent_socket_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - event_pending
    - bufferevent_add_event_
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: "void bufferevent_socket_outbuf_cb(struct evbuffer *buf,\n    const
      struct evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:152,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_sock.c:158,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:175,1
    - Dst: bufferevent_wm_suspend_read
      Src: /src/libevent/bufferevent_sock.c:178,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_sock.c:182,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:189,1
    - Dst: evbuffer_read
      Src: /src/libevent/bufferevent_sock.c:190,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:191,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/bufferevent_sock.c:194,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/bufferevent_sock.c:195,1
    - Dst: EVUTIL_ERR_CONNECT_REFUSED
      Src: /src/libevent/bufferevent_sock.c:199,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_sock.c:213,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_sock.c:216,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent_sock.c:224,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:225,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:228,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 229
    functionName: bufferevent_readcb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - evbuffer_freeze
    - bufferevent_disable
    - bufferevent_incref_and_lock_
    - bufferevent_trigger_nolock_
    - bufferevent_run_eventcb_
    - bufferevent_decref_and_unlock_
    - EVUTIL_ERR_CONNECT_REFUSED
    - bufferevent_wm_suspend_read
    - evbuffer_get_length
    - bufferevent_get_read_max_
    - evutil_socket_geterror
    - BEV_UPCAST
    - EVUTIL_ERR_RW_RETRIABLE
    - bufferevent_decrement_read_buckets_
    - evbuffer_unfreeze
    - evbuffer_read
    linkageType: ''
    returnType: void
    signature: void bufferevent_readcb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:235,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_sock.c:241,1
    - Dst: evutil_socket_finished_connecting_
      Src: /src/libevent/bufferevent_sock.c:251,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:264,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:265,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:266,1
    - Dst: bufferevent_socket_set_conn_address_fd_
      Src: /src/libevent/bufferevent_sock.c:270,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_sock.c:272,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:273,1
    - Dst: bufferevent_async_set_connected_
      Src: /src/libevent/bufferevent_sock.c:274,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:275,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:280,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:284,1
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_sock.c:290,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:295,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:296,1
    - Dst: evbuffer_write_atmost
      Src: /src/libevent/bufferevent_sock.c:297,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:298,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/bufferevent_sock.c:300,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/bufferevent_sock.c:301,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_sock.c:314,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:317,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:318,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_sock.c:326,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:332,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:333,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent_sock.c:338,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:339,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:342,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 343
    functionName: bufferevent_writecb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - evbuffer_freeze
    - bufferevent_decrement_write_buckets_
    - event_del
    - BEV_UPCAST
    - EVUTIL_ERR_RW_RETRIABLE
    - bufferevent_run_eventcb_
    - bufferevent_async_set_connected_
    - bufferevent_incref_and_lock_
    - evutil_socket_finished_connecting_
    - bufferevent_socket_set_conn_address_fd_
    - BEV_IS_ASYNC
    - bufferevent_get_write_max_
    - bufferevent_disable
    - evbuffer_write_atmost
    - bufferevent_trigger_nolock_
    - bufferevent_decref_and_unlock_
    - evbuffer_get_length
    - evutil_socket_geterror
    - evbuffer_unfreeze
    linkageType: ''
    returnType: void
    signature: void bufferevent_writecb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_sock.c:353,1
    - Dst: bufferevent_async_new_
      Src: /src/libevent/bufferevent_sock.c:354,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_sock.c:357,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_sock.c:360,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_sock.c:362,1
    - Dst: evbuffer_set_flags
      Src: /src/libevent/bufferevent_sock.c:366,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:368,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:370,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_sock.c:373,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:375,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - base
    - fd
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 345
    functionDepth: 5
    functionLinenumber: 345
    functionLinenumberEnd: 379
    functionName: bufferevent_socket_new
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 3
    functionsReached:
    - evbuffer_set_flags
    - evbuffer_freeze
    - mm_calloc
    - event_assign
    - bufferevent_init_common_
    - bufferevent_async_new_
    - event_base_get_iocp_
    - mm_free
    - evbuffer_add_cb
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_socket_new(struct event_base *base,
      evutil_socket_t fd,\n    int options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:466,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:468,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_sock.c:470,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_sock.c:471,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:477,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:482,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:483,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/bufferevent_sock.c:485,1
    - Dst: bufferevent_socket_set_conn_address_
      Src: /src/libevent/bufferevent_sock.c:490,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/bufferevent_sock.c:491,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:493,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:494,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/bufferevent_sock.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - result
    - ai
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 496
    functionName: bufferevent_connect_getaddrinfo_cb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - bufferevent_run_eventcb_
    - bufferevent_decref_and_unlock_
    - BEV_LOCK
    - bufferevent_unsuspend_write_
    - evutil_freeaddrinfo
    - bufferevent_socket_set_conn_address_
    - bufferevent_socket_connect
    - bufferevent_unsuspend_read_
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: "void bufferevent_connect_getaddrinfo_cb(int result, struct evutil_addrinfo
      *ai,\n    void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/bufferevent_sock.c:503,1
    - Dst: bufferevent_socket_connect_hostname_hints
      Src: /src/libevent/bufferevent_sock.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - bev
    - evdns_base
    - family
    - hostname
    - port
    argTypes:
    - struct bufferevent*
    - struct evdns_base*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 509
    functionName: bufferevent_socket_connect_hostname
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - bufferevent_socket_connect_hostname_hints
    - memset
    linkageType: ''
    returnType: int
    signature: "int bufferevent_socket_connect_hostname(struct bufferevent *bev,\n
      \   struct evdns_base *evdns_base, int family, const char *hostname, int port)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_sock.c:518,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:526,1
    - Dst: evutil_snprintf
      Src: /src/libevent/bufferevent_sock.c:529,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_sock.c:531,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_sock.c:532,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_sock.c:534,1
    - Dst: evutil_getaddrinfo_async_
      Src: /src/libevent/bufferevent_sock.c:535,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - bev
    - evdns_base
    - hints_in
    - hostname
    - port
    argTypes:
    - struct bufferevent*
    - struct evdns_base*
    - struct evutil_addrinfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 511
    functionDepth: 8
    functionLinenumber: 511
    functionLinenumberEnd: 541
    functionName: bufferevent_socket_connect_hostname_hints
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - bufferevent_incref_
    - EVUTIL_UPCAST
    - bufferevent_suspend_read_
    - BEV_UNLOCK
    - BEV_LOCK
    - evutil_getaddrinfo_async_
    - bufferevent_suspend_write_
    - evutil_snprintf
    linkageType: ''
    returnType: int
    signature: "int bufferevent_socket_connect_hostname_hints(struct bufferevent *bev,\n
      \   struct evdns_base *evdns_base, const struct evutil_addrinfo *hints_in,\n
      \   const char *hostname, int port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:547,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:549,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 554
    functionName: bufferevent_socket_get_dns_error
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_socket_get_dns_error(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/bufferevent_sock.c:574,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_sock.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - fd
    - readcb
    - writecb
    - eventcb
    - cbarg
    argTypes:
    - evutil_socket_t
    - bufferevent_data_cb
    - bufferevent_data_cb
    - bufferevent_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 567
    functionDepth: 6
    functionLinenumber: 567
    functionLinenumberEnd: 580
    functionName: bufferevent_new
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 2
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_setcb
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_new(evutil_socket_t fd,\n    bufferevent_data_cb
      readcb, bufferevent_data_cb writecb,\n    bufferevent_event_cb eventcb, void
      *cbarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_sock.c:587,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_sock.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 593
    functionName: be_socket_enable
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - bufferevent_add_event_
    linkageType: ''
    returnType: int
    signature: int be_socket_enable(struct bufferevent *bufev, short event)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:598,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:600,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 609
    functionName: be_socket_disable
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - event_del
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int be_socket_disable(struct bufferevent *bufev, short event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:614,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_sock.c:616,1
    - Dst: BEV_IS_SOCKET
      Src: /src/libevent/bufferevent_sock.c:616,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_sock.c:618,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/bufferevent_sock.c:621,1
    - Dst: evutil_getaddrinfo_cancel_async_
      Src: /src/libevent/bufferevent_sock.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 611
    functionDepth: 4
    functionLinenumber: 611
    functionLinenumberEnd: 624
    functionName: be_socket_destruct
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - EVUTIL_CLOSESOCKET
    - EVUTIL_ASSERT
    - evutil_getaddrinfo_cancel_async_
    - BEV_UPCAST
    - BEV_IS_SOCKET
    - event_get_fd
    linkageType: ''
    returnType: void
    signature: void be_socket_destruct(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: be_socket_flush
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int be_socket_flush(struct bufferevent *bev, short iotype,\n    enum
      bufferevent_flush_mode mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:637,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:639,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_sock.c:640,1
    - Dst: BEV_IS_SOCKET
      Src: /src/libevent/bufferevent_sock.c:640,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:642,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:643,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:645,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:646,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:648,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:650,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_sock.c:654,1
    - Dst: evutil_getaddrinfo_cancel_async_
      Src: /src/libevent/bufferevent_sock.c:656,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - bufev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 659
    functionName: be_socket_setfd
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - event_assign
    - EVUTIL_ASSERT
    - BEV_LOCK
    - bufferevent_enable
    - evutil_getaddrinfo_cancel_async_
    - event_del
    - BEV_UPCAST
    - evbuffer_unfreeze
    - BEV_IS_SOCKET
    linkageType: ''
    returnType: void
    signature: void be_socket_setfd(struct bufferevent *bufev, evutil_socket_t fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:666,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:668,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_sock.c:669,1
    - Dst: BEV_IS_FILTER
      Src: /src/libevent/bufferevent_sock.c:669,1
    - Dst: BEV_IS_PAIR
      Src: /src/libevent/bufferevent_sock.c:669,1
    - Dst: event_priority_set
      Src: /src/libevent/bufferevent_sock.c:672,1
    - Dst: event_priority_set
      Src: /src/libevent/bufferevent_sock.c:674,1
    - Dst: event_deferred_cb_set_priority_
      Src: /src/libevent/bufferevent_sock.c:677,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - bufev
    - priority
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 683
    functionName: bufferevent_priority_set
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_IS_FILTER
    - BEV_IS_PAIR
    - event_deferred_cb_set_priority_
    - BEV_UPCAST
    - event_priority_set
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: int
    signature: int bufferevent_priority_set(struct bufferevent *bufev, int priority)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:691,1
    - Dst: BEV_IS_SOCKET
      Src: /src/libevent/bufferevent_sock.c:692,1
    - Dst: event_base_set
      Src: /src/libevent/bufferevent_sock.c:697,1
    - Dst: event_base_set
      Src: /src/libevent/bufferevent_sock.c:701,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - base
    - bufev
    argTypes:
    - struct event_base*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 705
    functionName: bufferevent_base_set
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 2
    functionsReached:
    - event_base_set
    - BEV_LOCK
    - BEV_IS_SOCKET
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_base_set(struct event_base *base, struct bufferevent
      *bufev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: be_socket_setfd
      Src: /src/libevent/bufferevent_sock.c:713,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_sock.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 707
    functionDepth: 5
    functionLinenumber: 707
    functionLinenumberEnd: 723
    functionName: be_socket_ctrl
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - be_socket_setfd
    - event_get_fd
    linkageType: ''
    returnType: int
    signature: "int be_socket_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op
      op,\n    union bufferevent_ctrl_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: EPOLL_OP_TABLE_INDEX
    functionSourceFile: /src/libevent/epolltable-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EPOLL_OP_TABLE_INDEX(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: epoll_close
      Src: /src/libevent/epoll.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: close_epoll_handle
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_close
    linkageType: ''
    returnType: void
    signature: void close_epoll_handle(HANDLE h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libevent/epoll.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: close_epoll_handle
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_epoll_handle(int h)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create1
      Src: /src/libevent/epoll.c:181,1
    - Dst: epoll_create
      Src: /src/libevent/epoll.c:186,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:188,1
    - Dst: evutil_make_socket_closeonexec
      Src: /src/libevent/epoll.c:192,1
    - Dst: mm_calloc
      Src: /src/libevent/epoll.c:196,1
    - Dst: close_epoll_handle
      Src: /src/libevent/epoll.c:197,1
    - Dst: mm_calloc
      Src: /src/libevent/epoll.c:204,1
    - Dst: mm_free
      Src: /src/libevent/epoll.c:206,1
    - Dst: close_epoll_handle
      Src: /src/libevent/epoll.c:207,1
    - Dst: evutil_getenv_
      Src: /src/libevent/epoll.c:215,1
    - Dst: timerfd_create
      Src: /src/libevent/epoll.c:232,1
    - Dst: memset
      Src: /src/libevent/epoll.c:235,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:238,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:239,1
    - Dst: close
      Src: /src/libevent/epoll.c:240,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:249,1
    - Dst: sigfd_init_
      Src: /src/libevent/epoll.c:258,1
    - Dst: evsig_init_
      Src: /src/libevent/epoll.c:259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 262
    functionName: epoll_init
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - close_epoll_handle
    - evutil_make_socket_closeonexec
    - epoll_ctl
    - mm_calloc
    - timerfd_create
    - event_warn
    - epoll_create
    - sigfd_init_
    - evutil_getenv_
    - epoll_create1
    - close
    - mm_free
    - evsig_init_
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      epoll_init(struct event_base *base)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - change
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: change_to_string
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      change_to_string(int change)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: epoll_op_to_string
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      epoll_op_to_string(int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - events
    - ','
    - ch
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: PRINT_CHANGES
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_CHANGES(op, events, ch, status)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EPOLL_OP_TABLE_INDEX
      Src: /src/libevent/epoll.c:314,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/epoll.c:319,1
    - Dst: memset
      Src: /src/libevent/epoll.c:326,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:333,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:334,1
    - Dst: PRINT_CHANGES
      Src: /src/libevent/epoll.c:334,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:345,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:346,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:350,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:366,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:367,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:371,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:383,1
    - Dst: strerror
      Src: /src/libevent/epoll.c:386,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:394,1
    - Dst: PRINT_CHANGES
      Src: /src/libevent/epoll.c:394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - base
    - epollop
    - ch
    argTypes:
    - struct event_base*
    - struct epollop*
    - struct event_change*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 396
    functionName: epoll_apply_one_change
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_ctl
    - event_warn
    - EVUTIL_ASSERT
    - EPOLL_OP_TABLE_INDEX
    - strerror
    - event_debug
    - memset
    - PRINT_CHANGES
    linkageType: ''
    returnType: int
    signature: "int epoll_apply_one_change(struct event_base *base,\n    struct epollop
      *epollop,\n    const struct event_change *ch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_apply_one_change
      Src: /src/libevent/epoll.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 415
    functionName: epoll_apply_changes
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_apply_one_change
    linkageType: ''
    returnType: int
    signature: int epoll_apply_changes(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: epoll_apply_one_change
      Src: /src/libevent/epoll.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 436
    functionName: epoll_nochangelist_add
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_apply_one_change
    linkageType: ''
    returnType: int
    signature: "int epoll_nochangelist_add(struct event_base *base, evutil_socket_t
      fd,\n    short old, short events, void *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: epoll_apply_one_change
      Src: /src/libevent/epoll.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 457
    functionName: epoll_nochangelist_del
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_apply_one_change
    linkageType: ''
    returnType: int
    signature: "int epoll_nochangelist_del(struct event_base *base, evutil_socket_t
      fd,\n    short old, short events, void *p)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: timerfd_settime
      Src: /src/libevent/epoll.c:493,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:494,1
    - Dst: TIMEVAL_TO_TIMESPEC
      Src: /src/libevent/epoll.c:500,1
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/epoll.c:502,1
    - Dst: epoll_apply_changes
      Src: /src/libevent/epoll.c:511,1
    - Dst: event_changelist_remove_all_
      Src: /src/libevent/epoll.c:512,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/epoll.c:514,1
    - Dst: epoll_pwait2
      Src: /src/libevent/epoll.c:517,1
    - Dst: epoll_wait
      Src: /src/libevent/epoll.c:519,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/epoll.c:522,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:526,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:533,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/epoll.c:534,1
    - Dst: evmap_io_active_
      Src: /src/libevent/epoll.c:561,1
    - Dst: evmap_io_active_
      Src: /src/libevent/epoll.c:563,1
    - Dst: mm_realloc
      Src: /src/libevent/epoll.c:573,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 582
    functionName: epoll_dispatch
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_apply_changes
    - event_changelist_remove_all_
    - EVBASE_ACQUIRE_LOCK
    - event_warn
    - mm_realloc
    - TIMEVAL_TO_TIMESPEC
    - EVUTIL_ASSERT
    - epoll_wait
    - evutil_tv_to_msec_
    - evmap_io_active_
    - EVBASE_RELEASE_LOCK
    - epoll_pwait2
    - timerfd_settime
    - event_debug
    linkageType: ''
    returnType: int
    signature: int epoll_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/epoll.c:590,1
    - Dst: mm_free
      Src: /src/libevent/epoll.c:592,1
    - Dst: close_epoll_handle
      Src: /src/libevent/epoll.c:594,1
    - Dst: close
      Src: /src/libevent/epoll.c:597,1
    - Dst: memset
      Src: /src/libevent/epoll.c:600,1
    - Dst: mm_free
      Src: /src/libevent/epoll.c:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 602
    functionName: epoll_dealloc
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - close_epoll_handle
    - close
    - mm_free
    - evsig_dealloc_
    - memset
    linkageType: ''
    returnType: void
    signature: void epoll_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: EVBUFFER_CHAIN_EXTRA
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_CHAIN_EXTRA(t, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: ASSERT_EVBUFFER_LOCKED
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_EVBUFFER_LOCKED(buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: EVBUFFER_LOCK
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_LOCK(buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: EVBUFFER_UNLOCK
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_UNLOCK(buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buffer1
    - ','
    - buffer2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: EVBUFFER_LOCK2
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_LOCK2(buffer1, buffer2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buffer1
    - ','
    - buffer2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: EVBUFFER_UNLOCK2
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_UNLOCK2(buffer1, buffer2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - ei
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: WSABUF_FROM_EVBUFFER_IOV
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSABUF_FROM_EVBUFFER_IOV(i,ei)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_win32.c:56,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/evthread_win32.c:59,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: evthread_win32_lock_create
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - InitializeCriticalSectionAndSpinCount
    - mm_malloc
    - mm_free
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_win32_lock_create(unsigned locktype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/libevent/evthread_win32.c:70,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: evthread_win32_lock_free
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evthread_win32_lock_free(void *lock_, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TryEnterCriticalSection
      Src: /src/libevent/evthread_win32.c:79,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: evthread_win32_lock
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - EnterCriticalSection
    - TryEnterCriticalSection
    linkageType: ''
    returnType: int
    signature: int evthread_win32_lock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: evthread_win32_unlock
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    linkageType: ''
    returnType: int
    signature: int evthread_win32_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/libevent/evthread_win32.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: evthread_win32_get_id
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long evthread_win32_get_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/libevent/evthread_win32.c:113,1
    - Dst: TEXT
      Src: /src/libevent/evthread_win32.c:113,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:119,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:120,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:121,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: evthread_win32_condvar_init
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - GetModuleHandle
    - TEXT
    - LOAD
    linkageType: ''
    returnType: int
    signature: int evthread_win32_condvar_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: LOAD
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_win32.c:133,1
    - Dst: InitializeConditionVariable_fn
      Src: /src/libevent/evthread_win32.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - condflags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: evthread_win32_condvar_alloc
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - InitializeConditionVariable_fn
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_win32_condvar_alloc(unsigned condflags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: evthread_win32_condvar_free
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evthread_win32_condvar_free(void *cond_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WakeAllConditionVariable_fn
      Src: /src/libevent/evthread_win32.c:153,1
    - Dst: WakeConditionVariable_fn
      Src: /src/libevent/evthread_win32.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cond
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: evthread_win32_condvar_signal
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - WakeAllConditionVariable_fn
    - WakeConditionVariable_fn
    linkageType: ''
    returnType: int
    signature: int evthread_win32_condvar_signal(void *cond, int broadcast)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/evthread_win32.c:168,1
    - Dst: SleepConditionVariableCS_fn
      Src: /src/libevent/evthread_win32.c:171,1
    - Dst: GetLastError
      Src: /src/libevent/evthread_win32.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: evthread_win32_condvar_wait
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - SleepConditionVariableCS_fn
    - evutil_tv_to_msec_
    linkageType: ''
    returnType: int
    signature: int evthread_win32_condvar_wait(void *cond_, void *lock_, const struct
      timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_win32.c:196,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/evthread_win32.c:198,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:199,1
    - Dst: CreateEvent
      Src: /src/libevent/evthread_win32.c:202,1
    - Dst: DeleteCriticalSection
      Src: /src/libevent/evthread_win32.c:203,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 209
    functionName: evthread_win32_cond_alloc
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - mm_malloc
    - InitializeCriticalSectionAndSpinCount
    - CreateEvent
    - mm_free
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_win32_cond_alloc(unsigned flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/libevent/evthread_win32.c:215,1
    - Dst: CloseHandle
      Src: /src/libevent/evthread_win32.c:216,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cond_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: evthread_win32_cond_free
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - DeleteCriticalSection
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evthread_win32_cond_free(void *cond_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:224,1
    - Dst: SetEvent
      Src: /src/libevent/evthread_win32.c:230,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cond_
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: evthread_win32_cond_signal
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - EnterCriticalSection
    - SetEvent
    linkageType: ''
    returnType: int
    signature: int evthread_win32_cond_signal(void *cond_, int broadcast)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/evthread_win32.c:245,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:247,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:250,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:252,1
    - Dst: GetTickCount
      Src: /src/libevent/evthread_win32.c:254,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/evthread_win32.c:257,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:258,1
    - Dst: GetTickCount
      Src: /src/libevent/evthread_win32.c:272,1
    - Dst: ResetEvent
      Src: /src/libevent/evthread_win32.c:286,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:289,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:292,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:294,1
    - Dst: ResetEvent
      Src: /src/libevent/evthread_win32.c:296,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:297,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 300
    functionName: evthread_win32_cond_wait
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - EnterCriticalSection
    - evutil_tv_to_msec_
    - WaitForSingleObject
    - GetTickCount
    - ResetEvent
    linkageType: ''
    returnType: int
    signature: int evthread_win32_cond_wait(void *cond_, void *lock_, const struct
      timeval *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/evthread_win32.c:332,1
    - Dst: evthread_set_id_callback
      Src: /src/libevent/evthread_win32.c:333,1
    - Dst: evthread_win32_condvar_init
      Src: /src/libevent/evthread_win32.c:335,1
    - Dst: evthread_set_condition_callbacks
      Src: /src/libevent/evthread_win32.c:336,1
    - Dst: evthread_set_condition_callbacks
      Src: /src/libevent/evthread_win32.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 343
    functionName: evthread_use_windows_threads
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - evthread_set_lock_callbacks
    - evthread_set_id_callback
    - evthread_set_condition_callbacks
    - evthread_win32_condvar_init
    linkageType: ''
    returnType: int
    signature: int evthread_use_windows_threads(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evutil_time.c:99,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evutil_time.c:100,1
    - Dst: TEXT
      Src: /src/libevent/evutil_time.c:100,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil_time.c:104,1
    - Dst: GetSystemTimePreciseAsFileTime_fn
      Src: /src/libevent/evutil_time.c:109,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/libevent/evutil_time.c:111,1
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evutil_time.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - struct timezone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 121
    functionName: evutil_gettimeofday
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 4
    functionsReached:
    - evutil_load_windows_system_library_
    - GetSystemTimeAsFileTime
    - EVUTIL_UNLIKELY
    - GetProcAddress
    - GetSystemTimePreciseAsFileTime_fn
    - TEXT
    linkageType: ''
    returnType: int
    signature: int evutil_gettimeofday(struct timeval *tv, struct timezone *tz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: U64_LITERAL
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64_LITERAL(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: U64_LITERAL
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64_LITERAL(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: evutil_tv_to_msec_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long evutil_tv_to_msec_(const struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CreateWaitableTimer
      Src: /src/libevent/evutil_time.c:156,1
    - Dst: SetWaitableTimer
      Src: /src/libevent/evutil_time.c:160,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/evutil_time.c:161,1
    - Dst: CloseHandle
      Src: /src/libevent/evutil_time.c:162,1
    - Dst: nanosleep
      Src: /src/libevent/evutil_time.c:169,1
    - Dst: sleep
      Src: /src/libevent/evutil_time.c:173,1
    - Dst: usleep
      Src: /src/libevent/evutil_time.c:174,1
    - Dst: select
      Src: /src/libevent/evutil_time.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 181
    functionName: evutil_usleep_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - SetWaitableTimer
    - nanosleep
    - CloseHandle
    - usleep
    - select
    - WaitForSingleObject
    - sleep
    - CreateWaitableTimer
    linkageType: ''
    returnType: void
    signature: void evutil_usleep_(const struct timeval *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/evutil_time.c:191,1
    - Dst: gmtime_r
      Src: /src/libevent/evutil_time.c:200,1
    - Dst: _gmtime64_s
      Src: /src/libevent/evutil_time.c:205,1
    - Dst: event_errx
      Src: /src/libevent/evutil_time.c:207,1
    - Dst: _gmtime64
      Src: /src/libevent/evutil_time.c:212,1
    - Dst: gmtime
      Src: /src/libevent/evutil_time.c:214,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil_time.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - date
    - datelen
    - tm
    argTypes:
    - char*
    - size_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 222
    functionName: evutil_date_rfc1123
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 1
    functionsReached:
    - time
    - gmtime
    - gmtime_r
    - _gmtime64
    - evutil_snprintf
    - event_errx
    - _gmtime64_s
    linkageType: ''
    returnType: int
    signature: int evutil_date_rfc1123(char *date, const size_t datelen, const struct
      tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timeradd
      Src: /src/libevent/evutil_time.c:234,1
    - Dst: evutil_timercmp
      Src: /src/libevent/evutil_time.c:236,1
    - Dst: evutil_timersub
      Src: /src/libevent/evutil_time.c:239,1
    - Dst: evutil_timeradd
      Src: /src/libevent/evutil_time.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: adjust_monotonic_time
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - evutil_timersub
    - evutil_timercmp
    - evutil_timeradd
    linkageType: ''
    returnType: void
    signature: "void adjust_monotonic_time(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evutil_time.c:255,1
    - Dst: memset
      Src: /src/libevent/evutil_time.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: evutil_monotonic_timer_new
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - memset
    linkageType: ''
    returnType: struct evutil_monotonic_timer
    signature: 'struct evutil_monotonic_timer *

      evutil_monotonic_timer_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evutil_time.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct evutil_monotonic_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: evutil_monotonic_timer_free
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evutil_monotonic_timer_free(struct evutil_monotonic_timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/evutil_time.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - timer
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: evutil_configure_monotonic_time
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - evutil_configure_monotonic_time_
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time(struct evutil_monotonic_timer
      *timer,\n                                int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/evutil_time.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - timer
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: evutil_gettime_monotonic
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - evutil_gettime_monotonic_
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic(struct evutil_monotonic_timer *timer,\n
      \                        struct timeval *tp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:319,1
    - Dst: event_errx
      Src: /src/libevent/evutil_time.c:327,1
    - Dst: clock_gettime
      Src: /src/libevent/evutil_time.c:330,1
    - Dst: clock_gettime
      Src: /src/libevent/evutil_time.c:336,1
    - Dst: event_errx
      Src: /src/libevent/evutil_time.c:342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 347
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - memset
    - event_errx
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil_time.c:356,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:358,1
    - Dst: clock_gettime
      Src: /src/libevent/evutil_time.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - evutil_gettimeofday
    - adjust_monotonic_time
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:389,1
    - Dst: mach_timebase_info
      Src: /src/libevent/evutil_time.c:392,1
    - Dst: mach_absolute_time
      Src: /src/libevent/evutil_time.c:393,1
    - Dst: memcpy
      Src: /src/libevent/evutil_time.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 403
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - mach_timebase_info
    - memset
    - mach_absolute_time
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil_time.c:411,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:413,1
    - Dst: mach_absolute_time
      Src: /src/libevent/evutil_time.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - evutil_gettimeofday
    - adjust_monotonic_time
    - mach_absolute_time
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct evutil_monotonic_timer*::GetTickCount64_fn
      Src: /src/libevent/evutil_time.c:493,1
    - Dst: struct evutil_monotonic_timer*::GetTickCount_fn
      Src: /src/libevent/evutil_time.c:500,1
    - Dst: GetTickCount
      Src: /src/libevent/evutil_time.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evutil_monotonic_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 514
    functionName: evutil_GetTickCount_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - struct evutil_monotonic_timer*::GetTickCount_fn
    - GetTickCount
    - struct evutil_monotonic_timer*::GetTickCount64_fn
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t evutil_GetTickCount_(struct evutil_monotonic_timer *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:523,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evutil_time.c:525,1
    - Dst: TEXT
      Src: /src/libevent/evutil_time.c:525,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil_time.c:527,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil_time.c:528,1
    - Dst: evutil_GetTickCount_
      Src: /src/libevent/evutil_time.c:531,1
    - Dst: QueryPerformanceFrequency
      Src: /src/libevent/evutil_time.c:534,1
    - Dst: QueryPerformanceCounter
      Src: /src/libevent/evutil_time.c:536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 544
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - evutil_load_windows_system_library_
    - evutil_GetTickCount_
    - QueryPerformanceFrequency
    - GetProcAddress
    - TEXT
    - memset
    - QueryPerformanceCounter
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - ev_int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: abs64
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_int64_t
    signature: ev_int64_t abs64(ev_int64_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_GetTickCount_
      Src: /src/libevent/evutil_time.c:557,1
    - Dst: QueryPerformanceCounter
      Src: /src/libevent/evutil_time.c:566,1
    - Dst: abs64
      Src: /src/libevent/evutil_time.c:575,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 595
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - adjust_monotonic_time
    - abs64
    - QueryPerformanceCounter
    - evutil_GetTickCount_
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - base
    - precise
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int precise)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil_time.c:617,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 622
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - evutil_gettimeofday
    - adjust_monotonic_time
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:121,1
    - Dst: BEV_IS_FILTER
      Src: /src/libevent/bufferevent_filter.c:121,1
    - Dst: evutil_offsetof
      Src: /src/libevent/bufferevent_filter.c:123,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:124,1
    - Dst: BEV_IS_FILTER
      Src: /src/libevent/bufferevent_filter.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: upcast
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 21
    functionsReached:
    - EVUTIL_ASSERT
    - BEV_IS_FILTER
    - evutil_offsetof
    linkageType: ''
    returnType: struct bufferevent_filtered
    signature: 'struct bufferevent_filtered *

      upcast(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: downcast
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: downcast(bev_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - bevf
    - state
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: be_underlying_writebuf_full
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    linkageType: ''
    returnType: int
    signature: "int be_underlying_writebuf_full(struct bufferevent_filtered *bevf,\n
      \   enum bufferevent_flush_mode state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:149,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - bevf
    - state
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: be_readbuf_full
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    - downcast
    linkageType: ''
    returnType: int
    signature: "int be_readbuf_full(struct bufferevent_filtered *bevf,\n    enum bufferevent_flush_mode
      state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/bufferevent_filter.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: be_null_filter
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - evbuffer_remove_buffer
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result be_null_filter(struct evbuffer *src,
      struct evbuffer *dst, ev_ssize_t lim,\n\t       enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_filter.c:187,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_filter.c:191,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_filter.c:193,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent_filter.c:197,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:197,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_filter.c:207,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_filter.c:210,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:210,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent_filter.c:212,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:212,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_filter.c:215,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:215,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_filter.c:218,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:218,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_filter.c:219,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_filter.c:221,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_filter.c:222,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - underlying
    - input_filter
    - output_filter
    - options
    - ctx
    argTypes:
    - struct bufferevent*
    - bufferevent_filter_cb
    - bufferevent_filter_cb
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 225
    functionName: bufferevent_filter_new
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - bufferevent_init_generic_timeout_cbs_
    - bufferevent_incref_
    - bufferevent_suspend_read_
    - mm_calloc
    - bufferevent_enable_locking_
    - bufferevent_enable
    - bufferevent_init_common_
    - evbuffer_cb_clear_flags
    - mm_free
    - evbuffer_add_cb
    - downcast
    - bufferevent_setcb
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_filter_new(struct bufferevent *underlying,\n\t\t
      \      bufferevent_filter_cb input_filter,\n\t\t       bufferevent_filter_cb
      output_filter,\n\t\t       int options,\n\t\t       void (*free_context)(void
      *),\n\t\t       void *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:230,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:237,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_filter.c:238,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_filter.c:241,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_filter.c:246,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_filter.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 252
    functionName: be_filter_unlink
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    - bufferevent_unsuspend_read_
    - event_warnx
    - BEV_UPCAST
    - bufferevent_free
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void be_filter_unlink(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:257,1
    - Dst: struct bufferevent_filtered*::free_context
      Src: /src/libevent/bufferevent_filter.c:259,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/bufferevent_filter.c:262,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/bufferevent_filter.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 266
    functionName: be_filter_destruct
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    - evbuffer_remove_cb_entry
    - struct bufferevent_filtered*::free_context
    linkageType: ''
    returnType: void
    signature: void be_filter_destruct(struct bufferevent *bev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:271,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:273,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:276,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_filter.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 281
    functionName: be_filter_enable
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - bufferevent_unsuspend_read_
    linkageType: ''
    returnType: int
    signature: int be_filter_enable(struct bufferevent *bev, short event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:286,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:288,1
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:290,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_filter.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: be_filter_disable
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    - BEV_DEL_GENERIC_READ_TIMEOUT
    - bufferevent_suspend_read_
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    linkageType: ''
    returnType: int
    signature: int be_filter_disable(struct bufferevent *bev, short event)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:303,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:309,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:317,1
    - Dst: struct bufferevent_filtered*::process_in
      Src: /src/libevent/bufferevent_filter.c:319,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:326,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:327,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:330,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 3
    argNames:
    - bevf
    - state
    - processed_out
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 333
    functionName: be_filter_process_input
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - evbuffer_get_length
    - be_readbuf_full
    - struct bufferevent_filtered*::process_in
    - downcast
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result be_filter_process_input(struct bufferevent_filtered
      *bevf,\n\t\t\tenum bufferevent_flush_mode state,\n\t\t\tint *processed_out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:343,1
    - Dst: be_underlying_writebuf_full
      Src: /src/libevent/bufferevent_filter.c:353,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:354,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent_filter.c:360,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:372,1
    - Dst: struct bufferevent_filtered*::process_out
      Src: /src/libevent/bufferevent_filter.c:374,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:374,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:388,1
    - Dst: be_underlying_writebuf_full
      Src: /src/libevent/bufferevent_filter.c:390,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_filter.c:394,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:398,1
    - Dst: be_underlying_writebuf_full
      Src: /src/libevent/bufferevent_filter.c:399,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/bufferevent_filter.c:406,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:410,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 3
    argNames:
    - bevf
    - state
    - processed_out
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 413
    functionName: be_filter_process_output
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - evbuffer_cb_set_flags
    - bufferevent_trigger_nolock_
    - be_underlying_writebuf_full
    - struct bufferevent_filtered*::process_out
    - evbuffer_get_length
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - evbuffer_cb_clear_flags
    - downcast
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result be_filter_process_output(struct bufferevent_filtered
      *bevf,\n\t\t\t enum bufferevent_flush_mode state,\n\t\t\t int *processed_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:421,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_filter.c:427,1
    - Dst: be_filter_process_output
      Src: /src/libevent/bufferevent_filter.c:428,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_filter.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: bufferevent_filtered_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - downcast
    - be_filter_process_output
    linkageType: ''
    returnType: void
    signature: "void bufferevent_filtered_outbuf_cb(struct evbuffer *buf,\n    const
      struct evbuffer_cb_info *cbinfo, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:439,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:440,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:444,1
    - Dst: be_filter_process_input
      Src: /src/libevent/bufferevent_filter.c:455,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_filter.c:462,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:463,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:464,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/bufferevent_filter.c:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - underlying
    - me_
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 433
    functionDepth: 4
    functionLinenumber: 433
    functionLinenumberEnd: 475
    functionName: be_filter_read_nolock_
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - be_filter_process_input
    - evbuffer_cb_set_flags
    - bufferevent_trigger_nolock_
    - EVUTIL_ASSERT
    - evbuffer_get_length
    - be_readbuf_full
    - BEV_UPCAST
    - downcast
    linkageType: ''
    returnType: void
    signature: void be_filter_read_nolock_(struct bufferevent *underlying, void *me_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:484,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:486,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:494,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent_filter.c:499,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:501,1
    - Dst: be_filter_read_nolock_
      Src: /src/libevent/bufferevent_filter.c:502,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 506
    functionName: bufferevent_filtered_inbuf_cb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - be_filter_read_nolock_
    - evbuffer_get_length
    - be_readbuf_full
    - evbuffer_cb_clear_flags
    - downcast
    linkageType: ''
    returnType: void
    signature: "void bufferevent_filtered_inbuf_cb(struct evbuffer *buf,\n    const
      struct evbuffer_cb_info *cbinfo, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:513,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:515,1
    - Dst: be_filter_read_nolock_
      Src: /src/libevent/bufferevent_filter.c:517,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - underlying
    - me_
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 509
    functionDepth: 5
    functionLinenumber: 509
    functionLinenumberEnd: 520
    functionName: be_filter_readcb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - be_filter_read_nolock_
    - downcast
    - BEV_UNLOCK
    linkageType: ''
    returnType: void
    signature: void be_filter_readcb(struct bufferevent *underlying, void *me_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:528,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:529,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:532,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:535,1
    - Dst: be_filter_process_output
      Src: /src/libevent/bufferevent_filter.c:539,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - underlying
    - me_
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 543
    functionName: be_filter_writecb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - EVUTIL_ASSERT
    - BEV_LOCK
    - be_filter_process_output
    - BEV_UPCAST
    - downcast
    linkageType: ''
    returnType: void
    signature: void be_filter_writecb(struct bufferevent *underlying, void *me_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:550,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:551,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:553,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:556,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_filter.c:562,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - underlying
    - what
    - me_
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 566
    functionName: be_filter_eventcb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - bufferevent_run_eventcb_
    - EVUTIL_ASSERT
    - BEV_LOCK
    - BEV_UPCAST
    - downcast
    linkageType: ''
    returnType: void
    signature: void be_filter_eventcb(struct bufferevent *underlying, short what,
      void *me_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:572,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_filter.c:575,1
    - Dst: be_filter_process_input
      Src: /src/libevent/bufferevent_filter.c:578,1
    - Dst: be_filter_process_output
      Src: /src/libevent/bufferevent_filter.c:581,1
    - Dst: bufferevent_flush
      Src: /src/libevent/bufferevent_filter.c:585,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_filter.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - bufev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 590
    functionName: be_filter_flush
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - bufferevent_flush
    - be_filter_process_input
    - bufferevent_incref_and_lock_
    - upcast
    - bufferevent_decref_and_unlock_
    - be_filter_process_output
    linkageType: ''
    returnType: int
    signature: "int be_filter_flush(struct bufferevent *bufev,\n    short iotype,
      enum bufferevent_flush_mode mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:599,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 620
    functionName: be_filter_ctrl
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    linkageType: ''
    returnType: int
    signature: "int be_filter_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op
      op,\n    union bufferevent_ctrl_data *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - bucket
    - cfg
    - current_tick
    - reinitialize
    argTypes:
    - struct ev_token_bucket*
    - struct ev_token_bucket_cfg*
    - ev_uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: ev_token_bucket_init_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ev_token_bucket_init_(struct ev_token_bucket *bucket,\n    const
      struct ev_token_bucket_cfg *cfg,\n    ev_uint32_t current_tick,\n    int reinitialize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - bucket
    - cfg
    - current_tick
    argTypes:
    - struct ev_token_bucket*
    - struct ev_token_bucket_cfg*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: ev_token_bucket_update_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ev_token_bucket_update_(struct ev_token_bucket *bucket,\n    const
      struct ev_token_bucket_cfg *cfg,\n    ev_uint32_t current_tick)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:119,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:120,1
    - Dst: ev_token_bucket_update_
      Src: /src/libevent/bufferevent_ratelim.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: bufferevent_update_buckets
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_get_tick_
    - event_base_gettimeofday_cached
    - ev_token_bucket_update_
    linkageType: ''
    returnType: void
    signature: void bufferevent_update_buckets(struct bufferevent_private *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv
    - cfg
    argTypes:
    - struct timeval*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: ev_token_bucket_get_tick_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ev_uint32_t
    signature: "ev_uint32_t ev_token_bucket_get_tick_(const struct timeval *tv,\n
      \   const struct ev_token_bucket_cfg *cfg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:180,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_ratelim.c:187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - read_rate
    - read_burst
    - write_rate
    - write_burst
    - tick_len
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 190
    functionName: ev_token_bucket_cfg_new
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - memcpy
    linkageType: ''
    returnType: struct ev_token_bucket_cfg
    signature: "struct ev_token_bucket_cfg *\nev_token_bucket_cfg_new(size_t read_rate,
      size_t read_burst,\n    size_t write_rate, size_t write_burst,\n    const struct
      timeval *tick_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/bufferevent_ratelim.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: ev_token_bucket_cfg_free
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void ev_token_bucket_cfg_free(struct ev_token_bucket_cfg *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: LOCK_GROUP
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_GROUP(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: UNLOCK_GROUP
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_GROUP(g)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_update_buckets
      Src: /src/libevent/bufferevent_ratelim.c:242,1
    - Dst: LIM
      Src: /src/libevent/bufferevent_ratelim.c:243,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:249,1
    - Dst: GROUP_SUSPENDED
      Src: /src/libevent/bufferevent_ratelim.c:250,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:255,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:258,1
    - Dst: LIM
      Src: /src/libevent/bufferevent_ratelim.c:264,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:268,1
    - Dst: CLAMPTO
      Src: /src/libevent/bufferevent_ratelim.c:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - bev
    - is_write
    argTypes:
    - struct bufferevent_private*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 275
    functionName: bufferevent_get_rlim_max_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - GROUP_SUSPENDED
    - bufferevent_update_buckets
    - bufferevent_suspend_read_
    - LOCK_GROUP
    - CLAMPTO
    - LIM
    - bufferevent_suspend_write_
    - UNLOCK_GROUP
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_rlim_max_(struct bufferevent_private *bev,
      int is_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: LIM
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: GROUP_SUSPENDED
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GROUP_SUSPENDED(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: CLAMPTO
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLAMPTO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_rlim_max_
      Src: /src/libevent/bufferevent_ratelim.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 4
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: bufferevent_get_read_max_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 2
    functionsReached:
    - bufferevent_get_rlim_max_
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_read_max_(struct bufferevent_private *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_rlim_max_
      Src: /src/libevent/bufferevent_ratelim.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: bufferevent_get_write_max_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 2
    functionsReached:
    - bufferevent_get_rlim_max_
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_write_max_(struct bufferevent_private *bev)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:301,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:302,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:307,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:308,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:313,1
    - Dst: bev_group_suspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:317,1
    - Dst: bev_group_unsuspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:319,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - bev
    - bytes
    argTypes:
    - struct bufferevent_private*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 325
    functionName: bufferevent_decrement_read_buckets_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 4
    functionsReached:
    - bufferevent_suspend_read_
    - LOCK_GROUP
    - bev_group_unsuspend_reading_
    - event_del
    - bufferevent_unsuspend_read_
    - bev_group_suspend_reading_
    - event_add
    - UNLOCK_GROUP
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_read_buckets_(struct bufferevent_private
      *bev, ev_ssize_t bytes)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:339,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:340,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:345,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:346,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:351,1
    - Dst: bev_group_suspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:355,1
    - Dst: bev_group_unsuspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:357,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:359,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - bev
    - bytes
    argTypes:
    - struct bufferevent_private*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: bufferevent_decrement_write_buckets_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 4
    functionsReached:
    - LOCK_GROUP
    - bufferevent_unsuspend_write_
    - bev_group_suspend_writing_
    - bev_group_unsuspend_writing_
    - event_del
    - bufferevent_suspend_write_
    - event_add
    - UNLOCK_GROUP
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_write_buckets_(struct bufferevent_private
      *bev, ev_ssize_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/bufferevent_ratelim.c:380,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:381,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:382,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 388
    functionName: bev_group_suspend_reading_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - LIST_FOREACH
    - bufferevent_suspend_read_
    - EVLOCK_UNLOCK
    - EVLOCK_TRY_LOCK_
    linkageType: ''
    returnType: int
    signature: int bev_group_suspend_reading_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/bufferevent_ratelim.c:398,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:399,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:400,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: bev_group_suspend_writing_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - LIST_FOREACH
    - EVLOCK_UNLOCK
    - bufferevent_suspend_write_
    - EVLOCK_TRY_LOCK_
    linkageType: ''
    returnType: int
    signature: int bev_group_suspend_writing_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:417,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:419,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:424,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:425,1
    - Dst: ev_token_bucket_update_
      Src: /src/libevent/bufferevent_ratelim.c:427,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:434,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:440,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:452,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 456
    functionName: bev_refill_callback_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_get_tick_
    - BEV_UNLOCK
    - BEV_LOCK
    - ev_token_bucket_update_
    - bufferevent_unsuspend_write_
    - bufferevent_unsuspend_read_
    - event_add
    - event_base_gettimeofday_cached
    linkageType: ''
    returnType: void
    signature: void bev_refill_callback_(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:473,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/bufferevent_ratelim.c:473,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/bufferevent_ratelim.c:475,1
    - Dst: LIST_FIRST
      Src: /src/libevent/bufferevent_ratelim.c:477,1
    - Dst: LIST_NEXT
      Src: /src/libevent/bufferevent_ratelim.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - group
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 482
    functionName: bev_group_random_element_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - LIST_FIRST
    - LIST_NEXT
    - EVUTIL_ASSERT
    - LIST_EMPTY
    - evutil_weakrand_range_
    linkageType: ''
    returnType: struct bufferevent_private
    signature: 'struct bufferevent_private *

      bev_group_random_element_(struct bufferevent_rate_limit_group *group)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: FOREACH_RANDOM_ORDER
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_RANDOM_ORDER(block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_RANDOM_ORDER
      Src: /src/libevent/bufferevent_ratelim.c:511,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:512,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:513,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 521
    functionName: bev_group_unsuspend_reading_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - bufferevent_unsuspend_read_
    - EVLOCK_UNLOCK
    - FOREACH_RANDOM_ORDER
    - EVLOCK_TRY_LOCK_
    linkageType: ''
    returnType: void
    signature: void bev_group_unsuspend_reading_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_RANDOM_ORDER
      Src: /src/libevent/bufferevent_ratelim.c:530,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:531,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:532,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 540
    functionName: bev_group_unsuspend_writing_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - EVLOCK_UNLOCK
    - bufferevent_unsuspend_write_
    - FOREACH_RANDOM_ORDER
    - EVLOCK_TRY_LOCK_
    linkageType: ''
    returnType: void
    signature: void bev_group_unsuspend_writing_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:552,1
    - Dst: event_get_base
      Src: /src/libevent/bufferevent_ratelim.c:552,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:554,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:556,1
    - Dst: ev_token_bucket_update_
      Src: /src/libevent/bufferevent_ratelim.c:557,1
    - Dst: bev_group_unsuspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:561,1
    - Dst: bev_group_unsuspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:565,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 574
    functionName: bev_group_refill_callback_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_get_tick_
    - LOCK_GROUP
    - event_get_base
    - ev_token_bucket_update_
    - bev_group_unsuspend_writing_
    - bev_group_unsuspend_reading_
    - event_base_gettimeofday_cached
    - UNLOCK_GROUP
    linkageType: ''
    returnType: void
    signature: void bev_group_refill_callback_(evutil_socket_t fd, short what, void
      *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:580,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:588,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:594,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:595,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ratelim.c:596,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:597,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:603,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:604,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:612,1
    - Dst: ev_token_bucket_init_
      Src: /src/libevent/bufferevent_ratelim.c:622,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:625,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ratelim.c:625,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:626,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ratelim.c:628,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:632,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:634,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:638,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:640,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:645,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:650,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 2
    argNames:
    - bev
    - cfg
    argTypes:
    - struct bufferevent*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 652
    functionName: bufferevent_set_rate_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_get_tick_
    - bufferevent_suspend_read_
    - mm_calloc
    - event_base_gettimeofday_cached
    - BEV_UNLOCK
    - event_assign
    - event_initialized
    - BEV_LOCK
    - ev_token_bucket_init_
    - bufferevent_unsuspend_write_
    - EVUTIL_ASSERT
    - event_del
    - bufferevent_suspend_write_
    - bufferevent_unsuspend_read_
    - event_add
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: "int bufferevent_set_rate_limit(struct bufferevent *bev,\n    struct
      ev_token_bucket_cfg *cfg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:662,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:663,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:665,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_ratelim.c:668,1
    - Dst: LIST_INIT
      Src: /src/libevent/bufferevent_ratelim.c:669,1
    - Dst: ev_token_bucket_init_
      Src: /src/libevent/bufferevent_ratelim.c:671,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ratelim.c:673,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:676,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:678,1
    - Dst: bufferevent_rate_limit_group_set_min_share
      Src: /src/libevent/bufferevent_ratelim.c:680,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/bufferevent_ratelim.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - base
    - cfg
    argTypes:
    - struct event_base*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 686
    functionName: bufferevent_rate_limit_group_new
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_get_tick_
    - mm_calloc
    - evutil_weakrand_seed_
    - LIST_INIT
    - event_assign
    - ev_token_bucket_init_
    - bufferevent_rate_limit_group_set_min_share
    - EVTHREAD_ALLOC_LOCK
    - event_add
    - event_base_gettimeofday_cached
    - memcpy
    linkageType: ''
    returnType: struct bufferevent_rate_limit_group
    signature: "struct bufferevent_rate_limit_group *\nbufferevent_rate_limit_group_new(struct
      event_base *base,\n    const struct ev_token_bucket_cfg *cfg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:697,1
    - Dst: evutil_timercmp
      Src: /src/libevent/bufferevent_ratelim.c:698,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_ratelim.c:700,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:709,1
    - Dst: bufferevent_rate_limit_group_set_min_share
      Src: /src/libevent/bufferevent_ratelim.c:713,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - g
    - cfg
    argTypes:
    - struct bufferevent_rate_limit_group*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 717
    functionName: bufferevent_rate_limit_group_set_cfg
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - LOCK_GROUP
    - evutil_timercmp
    - bufferevent_rate_limit_group_set_min_share
    - event_add
    - UNLOCK_GROUP
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_set_cfg(\n\tstruct bufferevent_rate_limit_group
      *g,\n\tconst struct ev_token_bucket_cfg *cfg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - g
    - share
    argTypes:
    - struct bufferevent_rate_limit_group*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 738
    functionName: bufferevent_rate_limit_group_set_min_share
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_set_min_share(\n\tstruct bufferevent_rate_limit_group
      *g,\n\tsize_t share)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:743,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:744,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:745,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:746,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:747,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_ratelim.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 749
    functionName: bufferevent_rate_limit_group_free
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - LOCK_GROUP
    - EVUTIL_ASSERT
    - EVTHREAD_FREE_LOCK
    - event_del
    - mm_free
    - UNLOCK_GROUP
    linkageType: ''
    returnType: void
    signature: void bufferevent_rate_limit_group_free(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:756,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:757,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:761,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:763,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ratelim.c:766,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:772,1
    - Dst: bufferevent_remove_from_rate_limit_group
      Src: /src/libevent/bufferevent_ratelim.c:776,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:778,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/bufferevent_ratelim.c:781,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:786,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:789,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:791,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:793,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - bev
    - g
    argTypes:
    - struct bufferevent*
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 795
    functionName: bufferevent_add_to_rate_limit_group
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_suspend_read_
    - mm_calloc
    - LOCK_GROUP
    - BEV_UNLOCK
    - bufferevent_remove_from_rate_limit_group
    - event_assign
    - BEV_LOCK
    - LIST_INSERT_HEAD
    - bufferevent_suspend_write_
    - BEV_UPCAST
    - UNLOCK_GROUP
    linkageType: ''
    returnType: int
    signature: "int bufferevent_add_to_rate_limit_group(struct bufferevent *bev,\n
      \   struct bufferevent_rate_limit_group *g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_remove_from_rate_limit_group_internal_
      Src: /src/libevent/bufferevent_ratelim.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 801
    functionName: bufferevent_remove_from_rate_limit_group
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - bufferevent_remove_from_rate_limit_group_internal_
    linkageType: ''
    returnType: int
    signature: int bufferevent_remove_from_rate_limit_group(struct bufferevent *bev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:807,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:808,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:812,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/bufferevent_ratelim.c:815,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:816,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:819,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:820,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - bev
    - unsuspend
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 824
    functionName: bufferevent_remove_from_rate_limit_group_internal_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - LOCK_GROUP
    - BEV_UNLOCK
    - bufferevent_unsuspend_read_
    - BEV_LOCK
    - bufferevent_unsuspend_write_
    - LIST_REMOVE
    - BEV_UPCAST
    - UNLOCK_GROUP
    linkageType: ''
    returnType: int
    signature: "int bufferevent_remove_from_rate_limit_group_internal_(struct bufferevent
      *bev,\n    int unsuspend)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:840,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:841,1
    - Dst: bufferevent_update_buckets
      Src: /src/libevent/bufferevent_ratelim.c:843,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 850
    functionName: bufferevent_get_read_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_update_buckets
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_read_limit(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:859,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:860,1
    - Dst: bufferevent_update_buckets
      Src: /src/libevent/bufferevent_ratelim.c:862,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 869
    functionName: bufferevent_get_write_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_update_buckets
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_write_limit(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:876,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:877,1
    - Dst: evbuffer_set_max_read
      Src: /src/libevent/bufferevent_ratelim.c:882,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bev
    - size
    argTypes:
    - struct bufferevent*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 885
    functionName: bufferevent_set_max_single_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - evbuffer_set_max_read
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_set_max_single_read(struct bufferevent *bev, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:891,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:892,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - size
    argTypes:
    - struct bufferevent*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 899
    functionName: bufferevent_set_max_single_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_set_max_single_write(struct bufferevent *bev, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:906,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:907,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 910
    functionName: bufferevent_get_max_single_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_single_read(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:917,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:918,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: bufferevent_get_max_single_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_single_write(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:927,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_ratelim.c:928,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:928,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 923
    functionDepth: 5
    functionLinenumber: 923
    functionLinenumberEnd: 931
    functionName: bufferevent_get_max_to_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - bufferevent_get_read_max_
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_to_read(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:937,1
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_ratelim.c:938,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:938,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 941
    functionName: bufferevent_get_max_to_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_write_max_
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_to_write(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:945,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:948,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 959
    functionName: bufferevent_get_token_bucket_cfg
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: struct ev_token_bucket_cfg
    signature: 'struct ev_token_bucket_cfg *

      bufferevent_get_token_bucket_cfg(const struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:968,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 972
    functionName: bufferevent_rate_limit_group_get_read_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - UNLOCK_GROUP
    - LOCK_GROUP
    linkageType: ''
    returnType: ev_ssize_t
    signature: "ev_ssize_t bufferevent_rate_limit_group_get_read_limit(\n\tstruct
      bufferevent_rate_limit_group *grp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:981,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 985
    functionName: bufferevent_rate_limit_group_get_write_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - UNLOCK_GROUP
    - LOCK_GROUP
    linkageType: ''
    returnType: ev_ssize_t
    signature: "ev_ssize_t bufferevent_rate_limit_group_get_write_limit(\n\tstruct
      bufferevent_rate_limit_group *grp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:993,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:994,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:995,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:1000,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:1001,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:1006,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:1007,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:1010,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - bev
    - decr
    argTypes:
    - struct bufferevent*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1012
    functionName: bufferevent_decrement_read_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_suspend_read_
    - BEV_UNLOCK
    - bufferevent_unsuspend_read_
    - EVUTIL_ASSERT
    - BEV_LOCK
    - event_del
    - BEV_UPCAST
    - event_add
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_read_limit(struct bufferevent *bev, ev_ssize_t
      decr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:1022,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:1023,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:1024,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:1029,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:1030,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:1035,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:1036,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:1039,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - bev
    - decr
    argTypes:
    - struct bufferevent*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1014
    functionDepth: 4
    functionLinenumber: 1014
    functionLinenumberEnd: 1041
    functionName: bufferevent_decrement_write_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - EVUTIL_ASSERT
    - BEV_LOCK
    - bufferevent_unsuspend_write_
    - event_del
    - bufferevent_suspend_write_
    - BEV_UPCAST
    - event_add
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_write_limit(struct bufferevent *bev, ev_ssize_t
      decr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1049,1
    - Dst: bev_group_suspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:1054,1
    - Dst: bev_group_unsuspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:1056,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - grp
    - decr
    argTypes:
    - struct bufferevent_rate_limit_group*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1043
    functionDepth: 2
    functionLinenumber: 1043
    functionLinenumberEnd: 1061
    functionName: bufferevent_rate_limit_group_decrement_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - bev_group_suspend_reading_
    - bev_group_unsuspend_reading_
    - UNLOCK_GROUP
    - LOCK_GROUP
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_decrement_read(\n\tstruct bufferevent_rate_limit_group
      *grp, ev_ssize_t decr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1069,1
    - Dst: bev_group_suspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:1074,1
    - Dst: bev_group_unsuspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:1076,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - grp
    - decr
    argTypes:
    - struct bufferevent_rate_limit_group*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1081
    functionName: bufferevent_rate_limit_group_decrement_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - bev_group_suspend_writing_
    - bev_group_unsuspend_writing_
    - UNLOCK_GROUP
    - LOCK_GROUP
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_decrement_write(\n\tstruct bufferevent_rate_limit_group
      *grp, ev_ssize_t decr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - grp
    - total_read_out
    - total_written_out
    argTypes:
    - struct bufferevent_rate_limit_group*
    - ev_uint64_t*
    - ev_uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1092
    functionName: bufferevent_rate_limit_group_get_totals
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void bufferevent_rate_limit_group_get_totals(struct bufferevent_rate_limit_group
      *grp,\n    ev_uint64_t *total_read_out, ev_uint64_t *total_written_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1098
    functionName: bufferevent_rate_limit_group_reset_totals
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bufferevent_rate_limit_group_reset_totals(struct bufferevent_rate_limit_group
      *grp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_set_max_read
      Src: /src/libevent/bufferevent_ratelim.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1111
    functionName: bufferevent_ratelim_init_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - evbuffer_set_max_read
    linkageType: ''
    returnType: int
    signature: int bufferevent_ratelim_init_(struct bufferevent_private *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: rol
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: blk0
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: blk0
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: blk
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: R0
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: R1
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: R2
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: R3
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: R4
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/sha1.c:99,1
    - Dst: R0
      Src: /src/libevent/sha1.c:115,1
    - Dst: R0
      Src: /src/libevent/sha1.c:116,1
    - Dst: R0
      Src: /src/libevent/sha1.c:117,1
    - Dst: R0
      Src: /src/libevent/sha1.c:118,1
    - Dst: R0
      Src: /src/libevent/sha1.c:119,1
    - Dst: R0
      Src: /src/libevent/sha1.c:120,1
    - Dst: R0
      Src: /src/libevent/sha1.c:121,1
    - Dst: R0
      Src: /src/libevent/sha1.c:122,1
    - Dst: R0
      Src: /src/libevent/sha1.c:123,1
    - Dst: R0
      Src: /src/libevent/sha1.c:124,1
    - Dst: R0
      Src: /src/libevent/sha1.c:125,1
    - Dst: R0
      Src: /src/libevent/sha1.c:126,1
    - Dst: R0
      Src: /src/libevent/sha1.c:127,1
    - Dst: R0
      Src: /src/libevent/sha1.c:128,1
    - Dst: R0
      Src: /src/libevent/sha1.c:129,1
    - Dst: R0
      Src: /src/libevent/sha1.c:130,1
    - Dst: R1
      Src: /src/libevent/sha1.c:131,1
    - Dst: R1
      Src: /src/libevent/sha1.c:132,1
    - Dst: R1
      Src: /src/libevent/sha1.c:133,1
    - Dst: R1
      Src: /src/libevent/sha1.c:134,1
    - Dst: R2
      Src: /src/libevent/sha1.c:135,1
    - Dst: R2
      Src: /src/libevent/sha1.c:136,1
    - Dst: R2
      Src: /src/libevent/sha1.c:137,1
    - Dst: R2
      Src: /src/libevent/sha1.c:138,1
    - Dst: R2
      Src: /src/libevent/sha1.c:139,1
    - Dst: R2
      Src: /src/libevent/sha1.c:140,1
    - Dst: R2
      Src: /src/libevent/sha1.c:141,1
    - Dst: R2
      Src: /src/libevent/sha1.c:142,1
    - Dst: R2
      Src: /src/libevent/sha1.c:143,1
    - Dst: R2
      Src: /src/libevent/sha1.c:144,1
    - Dst: R2
      Src: /src/libevent/sha1.c:145,1
    - Dst: R2
      Src: /src/libevent/sha1.c:146,1
    - Dst: R2
      Src: /src/libevent/sha1.c:147,1
    - Dst: R2
      Src: /src/libevent/sha1.c:148,1
    - Dst: R2
      Src: /src/libevent/sha1.c:149,1
    - Dst: R2
      Src: /src/libevent/sha1.c:150,1
    - Dst: R2
      Src: /src/libevent/sha1.c:151,1
    - Dst: R2
      Src: /src/libevent/sha1.c:152,1
    - Dst: R2
      Src: /src/libevent/sha1.c:153,1
    - Dst: R2
      Src: /src/libevent/sha1.c:154,1
    - Dst: R3
      Src: /src/libevent/sha1.c:155,1
    - Dst: R3
      Src: /src/libevent/sha1.c:156,1
    - Dst: R3
      Src: /src/libevent/sha1.c:157,1
    - Dst: R3
      Src: /src/libevent/sha1.c:158,1
    - Dst: R3
      Src: /src/libevent/sha1.c:159,1
    - Dst: R3
      Src: /src/libevent/sha1.c:160,1
    - Dst: R3
      Src: /src/libevent/sha1.c:161,1
    - Dst: R3
      Src: /src/libevent/sha1.c:162,1
    - Dst: R3
      Src: /src/libevent/sha1.c:163,1
    - Dst: R3
      Src: /src/libevent/sha1.c:164,1
    - Dst: R3
      Src: /src/libevent/sha1.c:165,1
    - Dst: R3
      Src: /src/libevent/sha1.c:166,1
    - Dst: R3
      Src: /src/libevent/sha1.c:167,1
    - Dst: R3
      Src: /src/libevent/sha1.c:168,1
    - Dst: R3
      Src: /src/libevent/sha1.c:169,1
    - Dst: R3
      Src: /src/libevent/sha1.c:170,1
    - Dst: R3
      Src: /src/libevent/sha1.c:171,1
    - Dst: R3
      Src: /src/libevent/sha1.c:172,1
    - Dst: R3
      Src: /src/libevent/sha1.c:173,1
    - Dst: R3
      Src: /src/libevent/sha1.c:174,1
    - Dst: R4
      Src: /src/libevent/sha1.c:175,1
    - Dst: R4
      Src: /src/libevent/sha1.c:176,1
    - Dst: R4
      Src: /src/libevent/sha1.c:177,1
    - Dst: R4
      Src: /src/libevent/sha1.c:178,1
    - Dst: R4
      Src: /src/libevent/sha1.c:179,1
    - Dst: R4
      Src: /src/libevent/sha1.c:180,1
    - Dst: R4
      Src: /src/libevent/sha1.c:181,1
    - Dst: R4
      Src: /src/libevent/sha1.c:182,1
    - Dst: R4
      Src: /src/libevent/sha1.c:183,1
    - Dst: R4
      Src: /src/libevent/sha1.c:184,1
    - Dst: R4
      Src: /src/libevent/sha1.c:185,1
    - Dst: R4
      Src: /src/libevent/sha1.c:186,1
    - Dst: R4
      Src: /src/libevent/sha1.c:187,1
    - Dst: R4
      Src: /src/libevent/sha1.c:188,1
    - Dst: R4
      Src: /src/libevent/sha1.c:189,1
    - Dst: R4
      Src: /src/libevent/sha1.c:190,1
    - Dst: R4
      Src: /src/libevent/sha1.c:191,1
    - Dst: R4
      Src: /src/libevent/sha1.c:192,1
    - Dst: R4
      Src: /src/libevent/sha1.c:193,1
    - Dst: R4
      Src: /src/libevent/sha1.c:194,1
    - Dst: memset
      Src: /src/libevent/sha1.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 93
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - uint32_t[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 204
    functionName: SHA1Transform
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached:
    - R2
    - R4
    - R1
    - R3
    - R0
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA1Transform(uint32_t state[5], const unsigned char buffer[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: SHA1Init
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1Init(SHA1_CTX *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/sha1.c:231,1
    - Dst: SHA1Transform
      Src: /src/libevent/sha1.c:232,1
    - Dst: SHA1Transform
      Src: /src/libevent/sha1.c:234,1
    - Dst: memcpy
      Src: /src/libevent/sha1.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - SHA1_CTX*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: SHA1Update
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached:
    - SHA1Transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA1Update(SHA1_CTX *context, const unsigned char *data, uint32_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:275,1
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:278,1
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:280,1
    - Dst: memset
      Src: /src/libevent/sha1.c:287,1
    - Dst: memset
      Src: /src/libevent/sha1.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - unsigned char[]
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 289
    functionName: SHA1Final
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached:
    - SHA1Update
    - memset
    linkageType: ''
    returnType: void
    signature: void SHA1Final(unsigned char digest[20], SHA1_CTX *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Init
      Src: /src/libevent/sha1.c:295,1
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:297,1
    - Dst: SHA1Final
      Src: /src/libevent/sha1.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hash_out
    - str
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: builtin_SHA1
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 1
    functionsReached:
    - SHA1Update
    - SHA1Final
    - SHA1Init
    linkageType: ''
    returnType: void
    signature: void builtin_SHA1(char *hash_out, const char *str, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: evtag_init
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evtag_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - number
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: ENCODE_INT_INTERNAL
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_INT_INTERNAL(data, number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENCODE_INT_INTERNAL
      Src: /src/libevent/event_tagging.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - number
    argTypes:
    - ev_uint8_t*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: encode_int64_internal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - ENCODE_INT_INTERNAL
    linkageType: ''
    returnType: int
    signature: int encode_int64_internal(ev_uint8_t *data, ev_uint64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:160,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evbuf
    - number
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 7
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: evtag_encode_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - encode_int_internal
    linkageType: ''
    returnType: void
    signature: void evtag_encode_int(struct evbuffer *evbuf, ev_uint32_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int64_internal
      Src: /src/libevent/event_tagging.c:168,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evbuf
    - number
    argTypes:
    - struct evbuffer*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 7
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: evtag_encode_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - encode_int64_internal
    linkageType: ''
    returnType: void
    signature: void evtag_encode_int64(struct evbuffer *evbuf, ev_uint64_t number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event_tagging.c:183,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - evbuf
    - tag
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 177
    functionDepth: 7
    functionLinenumber: 177
    functionLinenumberEnd: 198
    functionName: evtag_encode_tag
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - memset
    linkageType: ''
    returnType: int
    signature: int evtag_encode_tag(struct evbuffer *evbuf, ev_uint32_t tag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:204,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/event_tagging.c:213,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - ptag
    - evbuf
    - dodrain
    argTypes:
    - ev_uint32_t*
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 246
    functionName: decode_tag_internal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_pullup
    - evbuffer_get_length
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int decode_tag_internal(ev_uint32_t *ptag, struct evbuffer *evbuf,
      int dodrain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptag
    - evbuf
    argTypes:
    - ev_uint32_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: evtag_decode_tag
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    linkageType: ''
    returnType: int
    signature: int evtag_decode_tag(ev_uint32_t *ptag, struct evbuffer *evbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:264,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:265,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - evbuf
    - tag
    - data
    - len
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - void*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 8
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: evtag_marshal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_encode_int
    - evbuffer_add
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: "void evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag,\n    const
      void *data, ev_uint32_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:273,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:275,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:275,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/event_tagging.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - evbuf
    - tag
    - data
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 8
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: evtag_marshal_buffer
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_encode_int
    - evbuffer_get_length
    - evbuffer_add_buffer
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: "void evtag_marshal_buffer(struct evbuffer *evbuf, ev_uint32_t tag,\n
      \   struct evbuffer *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:284,1
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:286,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:287,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - evbuf
    - tag
    - integer
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: evtag_marshal_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_encode_int
    - evbuffer_add
    - evtag_encode_tag
    - encode_int_internal
    linkageType: ''
    returnType: void
    signature: void evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag, ev_uint32_t
      integer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int64_internal
      Src: /src/libevent/event_tagging.c:296,1
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:298,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:299,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - evbuf
    - tag
    - integer
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 8
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: evtag_marshal_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_encode_int
    - evbuffer_add
    - encode_int64_internal
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: "void evtag_marshal_int64(struct evbuffer *evbuf, ev_uint32_t tag,\n
      \   ev_uint64_t integer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtag_marshal
      Src: /src/libevent/event_tagging.c:307,1
    - Dst: strlen
      Src: /src/libevent/event_tagging.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - tag
    - string
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 9
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: evtag_marshal_string
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - strlen
    - evtag_marshal
    linkageType: ''
    returnType: void
    signature: void evtag_marshal_string(struct evbuffer *buf, ev_uint32_t tag, const
      char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:314,1
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:315,1
    - Dst: evtag_marshal
      Src: /src/libevent/event_tagging.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - evbuf
    - tag
    - tv
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 310
    functionDepth: 9
    functionLinenumber: 310
    functionLinenumberEnd: 317
    functionName: evtag_marshal_timeval
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_marshal
    - encode_int_internal
    linkageType: ''
    returnType: void
    signature: void evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag,
      struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - number
    - ','
    - maxnibbles
    - ','
    - pnumber
    - ','
    - evbuf
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: DECODE_INT_INTERNAL
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_INT_INTERNAL(number, maxnibbles, pnumber, evbuf, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DECODE_INT_INTERNAL
      Src: /src/libevent/event_tagging.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pnumber
    - evbuf
    - offset
    argTypes:
    - ev_uint64_t*
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: decode_int64_internal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - DECODE_INT_INTERNAL
    linkageType: ''
    returnType: int
    signature: int decode_int64_internal(ev_uint64_t *pnumber, struct evbuffer *evbuf,
      int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:382,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pnumber
    - evbuf
    argTypes:
    - ev_uint32_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: evtag_decode_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_int_internal
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_decode_int(ev_uint32_t *pnumber, struct evbuffer *evbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_int64_internal
      Src: /src/libevent/event_tagging.c:392,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pnumber
    - evbuf
    argTypes:
    - ev_uint64_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: evtag_decode_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_int64_internal
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_decode_int64(ev_uint64_t *pnumber, struct evbuffer *evbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evbuf
    - ptag
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: evtag_peek
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    linkageType: ''
    returnType: int
    signature: int evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:410,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - evbuf
    - plength
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 421
    functionName: evtag_peek_length
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_int_internal
    - decode_tag_internal
    linkageType: ''
    returnType: int
    signature: int evtag_peek_length(struct evbuffer *evbuf, ev_uint32_t *plength)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:428,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - evbuf
    - plength
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 423
    functionDepth: 5
    functionLinenumber: 423
    functionLinenumberEnd: 437
    functionName: evtag_payload_length
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_int_internal
    - decode_tag_internal
    linkageType: ''
    returnType: int
    signature: int evtag_payload_length(struct evbuffer *evbuf, ev_uint32_t *plength)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:446,1
    - Dst: evtag_decode_int
      Src: /src/libevent/event_tagging.c:448,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - evbuf
    - ptag
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 5
    functionLinenumber: 441
    functionLinenumberEnd: 455
    functionName: evtag_unmarshal_header
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_decode_int
    - evbuffer_get_length
    - decode_tag_internal
    linkageType: ''
    returnType: int
    signature: int evtag_unmarshal_header(struct evbuffer *evbuf, ev_uint32_t *ptag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:461,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - evbuf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: evtag_consume
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_unmarshal_header
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_consume(struct evbuffer *evbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:475,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:478,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/event_tagging.c:478,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src
    - ptag
    - dst
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 470
    functionDepth: 7
    functionLinenumber: 470
    functionLinenumberEnd: 484
    functionName: evtag_unmarshal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_pullup
    - evtag_unmarshal_header
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_unmarshal(struct evbuffer *src, ev_uint32_t *ptag, struct
      evbuffer *dst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:496,1
    - Dst: evtag_decode_int
      Src: /src/libevent/event_tagging.c:500,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:503,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:506,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - pinteger
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 488
    functionDepth: 5
    functionLinenumber: 488
    functionLinenumberEnd: 512
    functionName: evtag_unmarshal_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_decode_int
    - decode_int_internal
    - evbuffer_get_length
    - decode_tag_internal
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_int(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   ev_uint32_t *pinteger)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:522,1
    - Dst: evtag_decode_int
      Src: /src/libevent/event_tagging.c:526,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:529,1
    - Dst: decode_int64_internal
      Src: /src/libevent/event_tagging.c:532,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - pinteger
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 538
    functionName: evtag_unmarshal_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_decode_int
    - decode_int64_internal
    - evbuffer_get_length
    - decode_tag_internal
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_int64(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   ev_uint64_t *pinteger)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:550,1
    - Dst: evbuffer_remove
      Src: /src/libevent/event_tagging.c:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - src
    - need_tag
    - data
    - len
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 542
    functionDepth: 6
    functionLinenumber: 542
    functionLinenumberEnd: 559
    functionName: evtag_unmarshal_fixed
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_unmarshal_header
    - evbuffer_remove
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_fixed(struct evbuffer *src, ev_uint32_t need_tag,
      void *data,\n    size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:568,1
    - Dst: mm_malloc
      Src: /src/libevent/event_tagging.c:572,1
    - Dst: event_warn
      Src: /src/libevent/event_tagging.c:574,1
    - Dst: evbuffer_remove
      Src: /src/libevent/event_tagging.c:577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - pstring
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 581
    functionName: evtag_unmarshal_string
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_unmarshal_header
    - mm_malloc
    - evbuffer_remove
    - event_warn
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_string(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   char **pstring)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:592,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:596,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:599,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:607,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - ptv
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 583
    functionDepth: 6
    functionLinenumber: 583
    functionLinenumberEnd: 609
    functionName: evtag_unmarshal_timeval
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_int_internal
    - evtag_unmarshal_header
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_timeval(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   struct timeval *ptv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: EVUTIL_HAS_ATTRIBUTE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_HAS_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: EVUTIL_NIL_CONDITION_
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_NIL_CONDITION_(condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: EVUTIL_ERR_IS_EAGAIN
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_IS_EAGAIN(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: EVUTIL_ERR_IS_EAGAIN
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_IS_EAGAIN(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: EVUTIL_ERR_RW_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_RW_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: EVUTIL_ERR_CONNECT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: EVUTIL_ERR_ACCEPT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_ACCEPT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: EVUTIL_ERR_CONNECT_REFUSED
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_REFUSED(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: EVUTIL_ERR_IS_EAGAIN
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_IS_EAGAIN(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: EVUTIL_ERR_RW_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_RW_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: EVUTIL_ERR_CONNECT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: EVUTIL_ERR_ACCEPT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_ACCEPT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: EVUTIL_ERR_CONNECT_REFUSED
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_REFUSED(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dlist
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: EVUTIL_ASSERT_LIST_OK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT_LIST_OK(dlist, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tailq
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: EVUTIL_ASSERT_TAILQ_OK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT_TAILQ_OK(tailq, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: EVUTIL_UPCAST
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_UPCAST(ptr, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: EVUTIL_UNLIKELY
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_UNLIKELY(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: EVUTIL_UNLIKELY
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_UNLIKELY(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: EVUTIL_ASSERT
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 174
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: EVUTIL_FAILURE_CHECK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_FAILURE_CHECK(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: EVUTIL_ASSERT
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 174
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: EVUTIL_FAILURE_CHECK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_FAILURE_CHECK(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    functionName: EV_I64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_I64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: EV_U64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_U64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: EV_I64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_I64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: EV_U64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_U64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: EV_SOCK_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SOCK_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: EV_SOCK_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SOCK_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: EV_SIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: EV_SSIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SSIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: EV_SIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: EV_SSIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SSIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: EV_SIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: EV_SSIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SSIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ssl.c:108,1
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:108,1
    - Dst: evutil_offsetof
      Src: /src/libevent/bufferevent_ssl.c:110,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ssl.c:111,1
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: bufferevent_ssl_upcast
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 6
    functionsReached:
    - EVUTIL_ASSERT
    - BEV_IS_SSL
    - evutil_offsetof
    linkageType: ''
    returnType: struct bufferevent_ssl
    signature: 'struct bufferevent_ssl *

      bufferevent_ssl_upcast(struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev_ssl
    - err
    argTypes:
    - struct bufferevent_ssl*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: bufferevent_ssl_put_error
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_put_error(struct bufferevent_ssl *bev_ssl, unsigned
      long err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:135,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:141,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: start_reading
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_add_event_
    - bufferevent_unsuspend_read_
    linkageType: ''
    returnType: int
    signature: int start_reading(struct bufferevent_ssl *bev_ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:158,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:163,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: start_writing
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_add_event_
    - bufferevent_unsuspend_read_
    linkageType: ''
    returnType: int
    signature: int start_writing(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ssl.c:177,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: bufferevent_ssl_stop_reading
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - event_del
    - bufferevent_suspend_read_
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_stop_reading(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:191,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: bufferevent_ssl_stop_writing
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - event_del
    - bufferevent_unsuspend_read_
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_stop_writing(struct bufferevent_ssl *bev_ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:203,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: set_rbow
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_reading
    - start_writing
    linkageType: ''
    returnType: int
    signature: int set_rbow(struct bufferevent_ssl *bev_ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:212,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: set_wbor
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_writing
    - start_reading
    linkageType: ''
    returnType: int
    signature: int set_wbor(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:224,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: clear_rbow
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_writing
    - start_reading
    linkageType: ''
    returnType: int
    signature: int clear_rbow(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:238,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: clear_wbor
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_reading
    - start_writing
    linkageType: ''
    returnType: int
    signature: int clear_wbor(struct bufferevent_ssl *bev_ssl)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_ssl.c:263,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/bufferevent_ssl.c:267,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear_error
      Src: /src/libevent/bufferevent_ssl.c:274,1
    - Dst: struct bufferevent_ssl*::ssl_ops::read
      Src: /src/libevent/bufferevent_ssl.c:275,1
    - Dst: clear_rbow
      Src: /src/libevent/bufferevent_ssl.c:280,1
    - Dst: struct bufferevent_ssl*::ssl_ops::decrement_buckets
      Src: /src/libevent/bufferevent_ssl.c:282,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_error
      Src: /src/libevent/bufferevent_ssl.c:292,1
    - Dst: struct bufferevent_ssl*::ssl_ops::print_err
      Src: /src/libevent/bufferevent_ssl.c:293,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_read
      Src: /src/libevent/bufferevent_ssl.c:304,1
    - Dst: clear_rbow
      Src: /src/libevent/bufferevent_ssl.c:307,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_write
      Src: /src/libevent/bufferevent_ssl.c:309,1
    - Dst: set_rbow
      Src: /src/libevent/bufferevent_ssl.c:313,1
    - Dst: struct bufferevent_ssl*::ssl_ops::conn_closed
      Src: /src/libevent/bufferevent_ssl.c:316,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/bufferevent_ssl.c:329,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:331,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 2
    argNames:
    - bev_ssl
    - n_to_read
    argTypes:
    - struct bufferevent_ssl*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 250
    functionDepth: 6
    functionLinenumber: 250
    functionLinenumberEnd: 335
    functionName: do_read
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - struct bufferevent_ssl*::ssl_ops::err_is_want_write
    - struct bufferevent_ssl*::ssl_ops::decrement_buckets
    - struct bufferevent_ssl*::ssl_ops::get_error
    - evbuffer_commit_space
    - struct bufferevent_ssl*::ssl_ops::conn_closed
    - set_rbow
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - struct bufferevent_ssl*::ssl_ops::read
    - struct bufferevent_ssl*::ssl_ops::print_err
    - clear_rbow
    - bufferevent_get_read_max_
    - evbuffer_reserve_space
    - struct bufferevent_ssl*::ssl_ops::err_is_want_read
    - struct bufferevent_ssl*::ssl_ops::clear_error
    linkageType: ''
    returnType: int
    signature: int do_read(struct bufferevent_ssl *bev_ssl, int n_to_read)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_ssl.c:351,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/bufferevent_ssl.c:355,1
    - Dst: evbuffer_peek
      Src: /src/libevent/bufferevent_ssl.c:358,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear_error
      Src: /src/libevent/bufferevent_ssl.c:376,1
    - Dst: struct bufferevent_ssl*::ssl_ops::write
      Src: /src/libevent/bufferevent_ssl.c:377,1
    - Dst: clear_wbor
      Src: /src/libevent/bufferevent_ssl.c:382,1
    - Dst: struct bufferevent_ssl*::ssl_ops::decrement_buckets
      Src: /src/libevent/bufferevent_ssl.c:386,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_error
      Src: /src/libevent/bufferevent_ssl.c:392,1
    - Dst: struct bufferevent_ssl*::ssl_ops::print_err
      Src: /src/libevent/bufferevent_ssl.c:393,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_write
      Src: /src/libevent/bufferevent_ssl.c:394,1
    - Dst: clear_wbor
      Src: /src/libevent/bufferevent_ssl.c:397,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_read
      Src: /src/libevent/bufferevent_ssl.c:400,1
    - Dst: set_wbor
      Src: /src/libevent/bufferevent_ssl.c:404,1
    - Dst: struct bufferevent_ssl*::ssl_ops::conn_closed
      Src: /src/libevent/bufferevent_ssl.c:408,1
    - Dst: evbuffer_drain
      Src: /src/libevent/bufferevent_ssl.c:416,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:420,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_ssl.c:422,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 2
    argNames:
    - bev_ssl
    - atmost
    argTypes:
    - struct bufferevent_ssl*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 339
    functionDepth: 6
    functionLinenumber: 339
    functionLinenumberEnd: 425
    functionName: do_write
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_write_max_
    - evbuffer_peek
    - struct bufferevent_ssl*::ssl_ops::err_is_want_write
    - clear_wbor
    - struct bufferevent_ssl*::ssl_ops::decrement_buckets
    - struct bufferevent_ssl*::ssl_ops::get_error
    - bufferevent_trigger_nolock_
    - struct bufferevent_ssl*::ssl_ops::conn_closed
    - struct bufferevent_ssl*::ssl_ops::print_err
    - struct bufferevent_ssl*::ssl_ops::write
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - evbuffer_drain
    - struct bufferevent_ssl*::ssl_ops::err_is_want_read
    - evbuffer_pullup
    - struct bufferevent_ssl*::ssl_ops::clear_error
    - set_wbor
    linkageType: ''
    returnType: int
    signature: int do_write(struct bufferevent_ssl *bev_ssl, int atmost)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:454,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:458,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_ssl.c:462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 468
    functionName: bytes_to_read
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    - bufferevent_get_read_max_
    linkageType: ''
    returnType: int
    signature: int bytes_to_read(struct bufferevent_ssl *bev)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: do_write
      Src: /src/libevent/bufferevent_ssl.c:483,1
    - Dst: bytes_to_read
      Src: /src/libevent/bufferevent_ssl.c:490,1
    - Dst: do_read
      Src: /src/libevent/bufferevent_ssl.c:493,1
    - Dst: struct bufferevent_ssl*::ssl_ops::pending
      Src: /src/libevent/bufferevent_ssl.c:510,1
    - Dst: bytes_to_read
      Src: /src/libevent/bufferevent_ssl.c:527,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_ssl.c:533,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:540,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 475
    functionDepth: 7
    functionLinenumber: 475
    functionLinenumberEnd: 543
    functionName: consider_reading
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 3
    functionsReached:
    - bytes_to_read
    - bufferevent_trigger_nolock_
    - do_write
    - event_del
    - struct bufferevent_ssl*::ssl_ops::pending
    - do_read
    linkageType: ''
    returnType: void
    signature: void consider_reading(struct bufferevent_ssl *bev_ssl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: do_read
      Src: /src/libevent/bufferevent_ssl.c:554,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_ssl.c:558,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:571,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:572,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:575,1
    - Dst: do_write
      Src: /src/libevent/bufferevent_ssl.c:578,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:584,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:585,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:589,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 545
    functionDepth: 7
    functionLinenumber: 545
    functionLinenumberEnd: 592
    functionName: consider_writing
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 3
    functionsReached:
    - bufferevent_trigger_nolock_
    - do_write
    - evbuffer_get_length
    - event_del
    - do_read
    linkageType: ''
    returnType: void
    signature: void consider_writing(struct bufferevent_ssl *bev_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: consider_reading
      Src: /src/libevent/bufferevent_ssl.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev_base
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 594
    functionDepth: 8
    functionLinenumber: 594
    functionLinenumberEnd: 599
    functionName: be_ssl_readcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - consider_reading
    linkageType: ''
    returnType: void
    signature: void be_ssl_readcb(struct bufferevent *bev_base, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev_base
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 8
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: be_ssl_writecb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - consider_writing
    linkageType: ''
    returnType: void
    signature: void be_ssl_writecb(struct bufferevent *bev_base, void *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - bev_base
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 631
    functionName: be_ssl_eventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void be_ssl_eventcb(struct bufferevent *bev_base, short what, void
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_ssl.c:637,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:639,1
    - Dst: consider_reading
      Src: /src/libevent/bufferevent_ssl.c:642,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_ssl.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 633
    functionDepth: 8
    functionLinenumber: 633
    functionLinenumberEnd: 645
    functionName: be_ssl_readeventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - consider_reading
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void be_ssl_readeventcb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_ssl.c:651,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:653,1
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:656,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_ssl.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 647
    functionDepth: 8
    functionLinenumber: 647
    functionLinenumberEnd: 659
    functionName: be_ssl_writeeventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - consider_writing
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void be_ssl_writeeventcb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ssl.c:666,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 671
    functionName: be_ssl_auto_fd
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - event_initialized
    - event_get_fd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t be_ssl_auto_fd(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_ssl.c:677,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ssl.c:685,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent_ssl.c:686,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent_ssl.c:687,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:689,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:690,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:693,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:696,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:701,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 673
    functionDepth: 4
    functionLinenumber: 673
    functionLinenumberEnd: 707
    functionName: set_open_callbacks
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_add_event_
    - event_assign
    - event_initialized
    - event_pending
    - event_del
    - bufferevent_setcb
    linkageType: ''
    returnType: int
    signature: int set_open_callbacks(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ssl.c:717,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear_error
      Src: /src/libevent/bufferevent_ssl.c:721,1
    - Dst: struct bufferevent_ssl*::ssl_ops::handshake
      Src: /src/libevent/bufferevent_ssl.c:722,1
    - Dst: struct bufferevent_ssl*::ssl_ops::decrement_buckets
      Src: /src/libevent/bufferevent_ssl.c:725,1
    - Dst: struct bufferevent_ssl*::ssl_ops::handshake_is_ok
      Src: /src/libevent/bufferevent_ssl.c:727,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:728,1
    - Dst: set_open_callbacks
      Src: /src/libevent/bufferevent_ssl.c:731,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_ssl.c:733,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:734,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_error
      Src: /src/libevent/bufferevent_ssl.c:738,1
    - Dst: struct bufferevent_ssl*::ssl_ops::print_err
      Src: /src/libevent/bufferevent_ssl.c:739,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_write
      Src: /src/libevent/bufferevent_ssl.c:740,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:741,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:742,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_read
      Src: /src/libevent/bufferevent_ssl.c:743,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:744,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:745,1
    - Dst: struct bufferevent_ssl*::ssl_ops::conn_closed
      Src: /src/libevent/bufferevent_ssl.c:747,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 751
    functionName: do_handshake
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 1
    functionsReached:
    - bufferevent_ssl_stop_writing
    - struct bufferevent_ssl*::ssl_ops::handshake_is_ok
    - struct bufferevent_ssl*::ssl_ops::err_is_want_write
    - start_writing
    - struct bufferevent_ssl*::ssl_ops::decrement_buckets
    - struct bufferevent_ssl*::ssl_ops::get_error
    - bufferevent_run_eventcb_
    - EVUTIL_ASSERT
    - bufferevent_enable
    - struct bufferevent_ssl*::ssl_ops::conn_closed
    - start_reading
    - struct bufferevent_ssl*::ssl_ops::handshake
    - set_open_callbacks
    - struct bufferevent_ssl*::ssl_ops::print_err
    - struct bufferevent_ssl*::ssl_ops::err_is_want_read
    - bufferevent_ssl_stop_reading
    - struct bufferevent_ssl*::ssl_ops::clear_error
    - event_get_fd
    linkageType: ''
    returnType: int
    signature: int do_handshake(struct bufferevent_ssl *bev_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev_base
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: be_ssl_handshakecb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - do_handshake
    linkageType: ''
    returnType: void
    signature: void be_ssl_handshakecb(struct bufferevent *bev_base, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_ssl.c:765,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:767,1
    - Dst: evutil_socket_finished_connecting_
      Src: /src/libevent/bufferevent_ssl.c:769,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:771,1
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:773,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_ssl.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 760
    functionDepth: 6
    functionLinenumber: 760
    functionLinenumberEnd: 776
    functionName: be_ssl_handshakeeventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    - evutil_socket_finished_connecting_
    - do_handshake
    linkageType: ''
    returnType: void
    signature: void be_ssl_handshakeeventcb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_ssl.c:782,1
    - Dst: bufferevent_setfd
      Src: /src/libevent/bufferevent_ssl.c:790,1
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:793,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ssl.c:797,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:798,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:799,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:802,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:805,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_ssl.c:809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 778
    functionDepth: 6
    functionLinenumber: 778
    functionLinenumberEnd: 812
    functionName: set_handshake_callbacks
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_setfd
    - event_assign
    - event_initialized
    - bufferevent_enable
    - event_del
    - do_handshake
    - bufferevent_setcb
    linkageType: ''
    returnType: int
    signature: int set_handshake_callbacks(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:818,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:821,1
    - Dst: struct bufferevent_ssl*::ssl_ops::renegotiate
      Src: /src/libevent/bufferevent_ssl.c:822,1
    - Dst: set_handshake_callbacks
      Src: /src/libevent/bufferevent_ssl.c:825,1
    - Dst: be_ssl_auto_fd
      Src: /src/libevent/bufferevent_ssl.c:825,1
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 814
    functionDepth: 7
    functionLinenumber: 814
    functionLinenumberEnd: 830
    functionName: bufferevent_ssl_renegotiate_impl
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - set_handshake_callbacks
    - BEV_IS_SSL
    - struct bufferevent_ssl*::ssl_ops::renegotiate
    - do_handshake
    - be_ssl_auto_fd
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: int
    signature: int bufferevent_ssl_renegotiate_impl(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:842,1
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 832
    functionDepth: 8
    functionLinenumber: 832
    functionLinenumberEnd: 850
    functionName: be_ssl_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_add_event_
    - consider_writing
    linkageType: ''
    returnType: void
    signature: "void be_ssl_outbuf_cb(struct evbuffer *buf,\n    const struct evbuffer_cb_info
      *cbinfo, void *arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:856,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:860,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:862,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:866,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:868,1
    - Dst: consider_reading
      Src: /src/libevent/bufferevent_ssl.c:871,1
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:873,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - bev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 853
    functionDepth: 8
    functionLinenumber: 853
    functionLinenumberEnd: 876
    functionName: be_ssl_enable
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - consider_writing
    - start_writing
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - start_reading
    - consider_reading
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: int
    signature: int be_ssl_enable(struct bufferevent *bev, short events)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:881,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:884,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:886,1
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:890,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - bev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 878
    functionDepth: 5
    functionLinenumber: 878
    functionLinenumberEnd: 895
    functionName: be_ssl_disable
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_writing
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - BEV_DEL_GENERIC_READ_TIMEOUT
    - bufferevent_ssl_upcast
    - bufferevent_ssl_stop_reading
    linkageType: ''
    returnType: int
    signature: int be_ssl_disable(struct bufferevent *bev, short events)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:900,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ssl.c:904,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_ssl.c:905,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_ssl.c:908,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_ssl.c:917,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 923
    functionName: be_ssl_unlink
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - bufferevent_unsuspend_read_
    - event_warnx
    - BEV_UPCAST
    - bufferevent_ssl_upcast
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void be_ssl_unlink(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:928,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_fd
      Src: /src/libevent/bufferevent_ssl.c:932,1
    - Dst: evutil_closesocket
      Src: /src/libevent/bufferevent_ssl.c:938,1
    - Dst: struct bufferevent_ssl*::ssl_ops::free
      Src: /src/libevent/bufferevent_ssl.c:941,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 925
    functionDepth: 2
    functionLinenumber: 925
    functionLinenumberEnd: 942
    functionName: be_ssl_destruct
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - struct bufferevent_ssl*::ssl_ops::free
    - bufferevent_ssl_upcast
    - evutil_closesocket
    - struct bufferevent_ssl*::ssl_ops::get_fd
    linkageType: ''
    returnType: void
    signature: void be_ssl_destruct(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:947,1
    - Dst: bufferevent_generic_adj_timeouts_
      Src: /src/libevent/bufferevent_ssl.c:950,1
    - Dst: bufferevent_generic_adj_existing_timeouts_
      Src: /src/libevent/bufferevent_ssl.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 954
    functionName: be_ssl_adj_timeouts
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_generic_adj_existing_timeouts_
    - bufferevent_ssl_upcast
    - bufferevent_generic_adj_timeouts_
    linkageType: ''
    returnType: int
    signature: int be_ssl_adj_timeouts(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bufev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 962
    functionName: be_ssl_flush
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int be_ssl_flush(struct bufferevent *bufev,\n    short iotype, enum
      bufferevent_flush_mode mode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: struct bufferevent_ssl*::ssl_ops::clear
      Src: /src/libevent/bufferevent_ssl.c:972,1
    - Dst: struct bufferevent_ssl*::ssl_ops::set_accept_state
      Src: /src/libevent/bufferevent_ssl.c:974,1
    - Dst: set_handshake_callbacks
      Src: /src/libevent/bufferevent_ssl.c:975,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear
      Src: /src/libevent/bufferevent_ssl.c:979,1
    - Dst: struct bufferevent_ssl*::ssl_ops::set_connect_state
      Src: /src/libevent/bufferevent_ssl.c:981,1
    - Dst: set_handshake_callbacks
      Src: /src/libevent/bufferevent_ssl.c:982,1
    - Dst: set_open_callbacks
      Src: /src/libevent/bufferevent_ssl.c:986,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - bev_ssl
    - state
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - enum bufferevent_ssl_state
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 964
    functionDepth: 7
    functionLinenumber: 964
    functionLinenumberEnd: 994
    functionName: be_ssl_set_fd
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - set_handshake_callbacks
    - struct bufferevent_ssl*::ssl_ops::set_accept_state
    - struct bufferevent_ssl*::ssl_ops::set_connect_state
    - set_open_callbacks
    - struct bufferevent_ssl*::ssl_ops::clear
    linkageType: ''
    returnType: int
    signature: "int be_ssl_set_fd(struct bufferevent_ssl *bev_ssl,\n    enum bufferevent_ssl_state
      state, evutil_socket_t fd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1001,1
    - Dst: struct bufferevent_ssl*::ssl_ops::bio_set_fd
      Src: /src/libevent/bufferevent_ssl.c:1004,1
    - Dst: be_ssl_set_fd
      Src: /src/libevent/bufferevent_ssl.c:1006,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:1009,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:1011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 8
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: be_ssl_ctrl
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - struct bufferevent_ssl*::ssl_ops::bio_set_fd
    - bufferevent_ssl_upcast
    - event_get_fd
    - be_ssl_set_fd
    linkageType: ''
    returnType: int
    signature: "int be_ssl_ctrl(struct bufferevent *bev,\n    enum bufferevent_ctrl_op
      op, union bufferevent_ctrl_data *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ssl.c:1040,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_ssl.c:1045,1
    - Dst: struct bufferevent_ssl*::ssl_ops::init
      Src: /src/libevent/bufferevent_ssl.c:1051,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_ssl.c:1055,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent_ssl.c:1059,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_ssl.c:1062,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_ssl.c:1063,1
    - Dst: struct bufferevent_ssl*::ssl_ops::init_bio_counts
      Src: /src/libevent/bufferevent_ssl.c:1069,1
    - Dst: be_ssl_auto_fd
      Src: /src/libevent/bufferevent_ssl.c:1071,1
    - Dst: be_ssl_set_fd
      Src: /src/libevent/bufferevent_ssl.c:1072,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/bufferevent_ssl.c:1076,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_ssl.c:1077,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ssl.c:1079,1
    - Dst: struct bufferevent_ssl*::ssl_ops::free
      Src: /src/libevent/bufferevent_ssl.c:1087,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_ssl.c:1089,1
    - Dst: struct le_ssl_ops*::free_raw
      Src: /src/libevent/bufferevent_ssl.c:1092,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 7
    argNames:
    - base
    - underlying
    - fd
    - ssl
    - state
    - options
    - ssl_ops
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - evutil_socket_t
    - void*
    - enum bufferevent_ssl_state
    - int
    - struct le_ssl_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1023
    functionDepth: 8
    functionLinenumber: 1023
    functionLinenumberEnd: 1095
    functionName: bufferevent_ssl_new_impl
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 4
    functionsReached:
    - bufferevent_init_generic_timeout_cbs_
    - bufferevent_incref_
    - struct bufferevent_ssl*::ssl_ops::init
    - mm_calloc
    - bufferevent_suspend_read_
    - bufferevent_free
    - bufferevent_enable_locking_
    - bufferevent_enable
    - be_ssl_auto_fd
    - struct le_ssl_ops*::free_raw
    - struct bufferevent_ssl*::ssl_ops::free
    - bufferevent_setwatermark
    - be_ssl_set_fd
    - bufferevent_init_common_
    - evbuffer_add_cb
    - struct bufferevent_ssl*::ssl_ops::init_bio_counts
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_ssl_new_impl(struct event_base *base,\n
      \   struct bufferevent *underlying,\n    evutil_socket_t fd,\n    void *ssl,\n
      \   enum bufferevent_ssl_state state,\n    int options,\n\tstruct le_ssl_ops
      *ssl_ops)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1103,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1106,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1107,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1097
    functionDepth: 2
    functionLinenumber: 1097
    functionLinenumberEnd: 1113
    functionName: bufferevent_get_ssl_error
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - bufferevent_ssl_upcast
    - BEV_LOCK
    - BEV_IS_SSL
    - BEV_UNLOCK
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bufferevent_get_ssl_error(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1120,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1123,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1124,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1129
    functionName: bufferevent_ssl_get_flags
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    - BEV_LOCK
    - BEV_IS_SSL
    - BEV_UNLOCK
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t bufferevent_ssl_get_flags(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1136,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1139,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1140,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - flags
    argTypes:
    - struct bufferevent*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1146
    functionName: bufferevent_ssl_set_flags
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    - BEV_LOCK
    - BEV_IS_SSL
    - BEV_UNLOCK
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t bufferevent_ssl_set_flags(struct bufferevent *bev, ev_uint64_t
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1153,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1156,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1157,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - flags
    argTypes:
    - struct bufferevent*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1163
    functionName: bufferevent_ssl_clear_flags
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    - BEV_LOCK
    - BEV_IS_SSL
    - BEV_UNLOCK
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t bufferevent_ssl_clear_flags(struct bufferevent *bev, ev_uint64_t
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_get_flags
      Src: /src/libevent/bufferevent_ssl.c:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1172
    functionName: bufferevent_ssl_get_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - bufferevent_ssl_get_flags
    linkageType: ''
    returnType: int
    signature: int bufferevent_ssl_get_allow_dirty_shutdown(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1178,1
    - Dst: bufferevent_ssl_set_flags
      Src: /src/libevent/bufferevent_ssl.c:1181,1
    - Dst: bufferevent_ssl_clear_flags
      Src: /src/libevent/bufferevent_ssl.c:1183,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - allow_dirty_shutdown
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1186
    functionName: bufferevent_ssl_set_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - bufferevent_ssl_clear_flags
    - BEV_LOCK
    - bufferevent_ssl_set_flags
    - BEV_UNLOCK
    linkageType: ''
    returnType: void
    signature: "void bufferevent_ssl_set_allow_dirty_shutdown(\n\tstruct bufferevent
      *bev, int allow_dirty_shutdown)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/poll.c:103,1
    - Dst: sigfd_init_
      Src: /src/libevent/poll.c:106,1
    - Dst: evsig_init_
      Src: /src/libevent/poll.c:107,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/poll.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: poll_init
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_seed_
    - sigfd_init_
    - mm_calloc
    - evsig_init_
    linkageType: ''
    returnType: void
    signature: 'void *

      poll_init(struct event_base *base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:125,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pop
    argTypes:
    - struct pollop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: poll_check_ok
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void poll_check_ok(struct pollop *pop)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:144,1
    - Dst: mm_realloc
      Src: /src/libevent/poll.c:156,1
    - Dst: event_warn
      Src: /src/libevent/poll.c:159,1
    - Dst: memcpy
      Src: /src/libevent/poll.c:165,1
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/poll.c:176,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/poll.c:181,1
    - Dst: poll
      Src: /src/libevent/poll.c:183,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/poll.c:185,1
    - Dst: event_warn
      Src: /src/libevent/poll.c:189,1
    - Dst: event_debug
      Src: /src/libevent/poll.c:196,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/poll.c:201,1
    - Dst: evmap_io_active_
      Src: /src/libevent/poll.c:224,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 228
    functionName: poll_dispatch
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - poll_check_ok
    - mm_realloc
    - event_warn
    - EVBASE_ACQUIRE_LOCK
    - evutil_tv_to_msec_
    - evmap_io_active_
    - EVBASE_RELEASE_LOCK
    - evutil_weakrand_range_
    - poll
    - event_debug
    - memcpy
    linkageType: ''
    returnType: int
    signature: int poll_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:238,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:242,1
    - Dst: mm_realloc
      Src: /src/libevent/poll.c:253,1
    - Dst: event_warn
      Src: /src/libevent/poll.c:256,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 287
    functionName: poll_add
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - poll_check_ok
    - EVUTIL_ASSERT
    - mm_realloc
    - event_warn
    linkageType: ''
    returnType: int
    signature: int poll_add(struct event_base *base, int fd, short old, short events,
      void *idx_)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:301,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:305,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:318,1
    - Dst: memcpy
      Src: /src/libevent/poll.c:332,1
    - Dst: evmap_io_get_fdinfo_
      Src: /src/libevent/poll.c:334,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:335,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:336,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:340,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 342
    functionName: poll_del
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - poll_check_ok
    - EVUTIL_ASSERT
    - evmap_io_get_fdinfo_
    - memcpy
    linkageType: ''
    returnType: int
    signature: int poll_del(struct event_base *base, int fd, short old, short events,
      void *idx_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/poll.c:349,1
    - Dst: mm_free
      Src: /src/libevent/poll.c:351,1
    - Dst: mm_free
      Src: /src/libevent/poll.c:353,1
    - Dst: memset
      Src: /src/libevent/poll.c:355,1
    - Dst: mm_free
      Src: /src/libevent/poll.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: poll_dealloc
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - evsig_dealloc_
    - memset
    - mm_free
    linkageType: ''
    returnType: void
    signature: void poll_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: evutil_secure_rng_set_urandom_device_file
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_set_urandom_device_file(char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: evutil_secure_rng_init
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - arc4random
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: evutil_secure_rng_global_setup_locks_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_global_setup_locks_(const int enable_locks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: evutil_free_secure_rng_globals_locks
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_free_secure_rng_globals_locks(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/libevent/evutil_rand.c:75,1
    - Dst: arc4random_buf
      Src: /src/libevent/evutil_rand.c:91,1
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:99,1
    - Dst: memcpy
      Src: /src/libevent/evutil_rand.c:101,1
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:106,1
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:111,1
    - Dst: memcpy
      Src: /src/libevent/evutil_rand.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 71
    functionDepth: 8
    functionLinenumber: 71
    functionLinenumberEnd: 115
    functionName: ev_arc4random_buf
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - arc4random_buf
    - arc4random
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ev_arc4random_buf(void *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: ARC4_LOCK_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARC4_LOCK_()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: ARC4_UNLOCK_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARC4_UNLOCK_()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/evutil_rand.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: evutil_secure_rng_global_setup_locks_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - EVTHREAD_SETUP_GLOBAL_LOCK
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_global_setup_locks_(const int enable_locks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evutil_rand.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: evutil_free_secure_rng_globals_locks
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_FREE_LOCK
    linkageType: ''
    returnType: void
    signature: void evutil_free_secure_rng_globals_locks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/evutil_rand.c:161,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/evutil_rand.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: evutil_secure_rng_set_urandom_device_file
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - ARC4_LOCK_
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_set_urandom_device_file(char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/evutil_rand.c:173,1
    - Dst: arc4_stir
      Src: /src/libevent/evutil_rand.c:174,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/evutil_rand.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: evutil_secure_rng_init
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - ARC4_LOCK_
    - arc4_stir
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/libevent/evutil_rand.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 8
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: ev_arc4random_buf
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - arc4random_buf
    linkageType: ''
    returnType: void
    signature: void ev_arc4random_buf(void *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_arc4random_buf
      Src: /src/libevent/evutil_rand.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 9
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: evutil_secure_rng_get_bytes
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 3
    functionsReached:
    - ev_arc4random_buf
    linkageType: ''
    returnType: void
    signature: void evutil_secure_rng_get_bytes(void *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_addrandom
      Src: /src/libevent/evutil_rand.c:197,1
    - Dst: arc4random_stir
      Src: /src/libevent/evutil_rand.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: evutil_secure_rng_add_bytes
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - arc4random_stir
    - arc4random_addrandom
    linkageType: ''
    returnType: void
    signature: void evutil_secure_rng_add_bytes(const char *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_free_secure_rng_globals_locks
      Src: /src/libevent/evutil_rand.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: evutil_free_secure_rng_globals_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - evutil_free_secure_rng_globals_locks
    linkageType: ''
    returnType: void
    signature: void evutil_free_secure_rng_globals_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 13
    functionName: HT_HEAD
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: HT_INITIALIZER
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_INITIALIZER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: HT_ENTRY
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: HT_ENTRY
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: HT_EMPTY
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: HT_SIZE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SIZE(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: HT_MEM_USAGE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_MEM_USAGE(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: HT_FIND
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FIND(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: HT_INSERT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_INSERT(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: HT_REPLACE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_REPLACE(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: HT_REMOVE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_REMOVE(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: HT_START
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_START(name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: HT_NEXT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_NEXT(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: HT_NEXT_RMV
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_NEXT_RMV(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: HT_CLEAR
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_CLEAR(name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: HT_INIT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_INIT(name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: ht_improve_hash_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ht_improve_hash_(unsigned h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: ht_string_hash_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ht_string_hash_(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: ht_string_hash_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ht_string_hash_(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: HT_SET_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: HT_SET_HASHVAL_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASHVAL_(elm, field, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: HT_ELT_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ELT_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: HT_SET_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: HT_ELT_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ELT_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: HT_SET_HASHVAL_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASHVAL_(elm, field, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - field
    - ','
    - elm
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: HT_BUCKET_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_BUCKET_(head, field, elm, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: HT_FOREACH
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - hashfn
    - ','
    - eqfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: HT_PROTOTYPE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_PROTOTYPE(name, type, field, hashfn, eqfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HT_BUCKET_
      Src: /src/libevent/ht-internal.h:149,1
    - Dst: eqfn
      Src: /src/libevent/ht-internal.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: _HT_FIND_P_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - eqfn
    - HT_BUCKET_
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_FIND_P_(struct
      name *head, struct type *elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:164,1
    - Dst: _HT_FIND_P_
      Src: /src/libevent/ht-internal.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: _HT_FIND
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_SET_HASH_
    - _HT_FIND_P_
    linkageType: ''
    returnType: struct type
    signature: "struct type *                                           \\\n  name##_HT_FIND(const
      struct name *head, struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HT_GROW
      Src: /src/libevent/ht-internal.h:175,1
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:177,1
    - Dst: HT_BUCKET_
      Src: /src/libevent/ht-internal.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: _HT_INSERT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - _HT_GROW
    - HT_BUCKET_
    - HT_SET_HASH_
    linkageType: ''
    returnType: void
    signature: void _HT_INSERT(struct name *head, struct type *elm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HT_GROW
      Src: /src/libevent/ht-internal.h:190,1
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:191,1
    - Dst: _HT_FIND_P_
      Src: /src/libevent/ht-internal.h:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: _HT_REPLACE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - _HT_GROW
    - HT_SET_HASH_
    - _HT_FIND_P_
    linkageType: ''
    returnType: struct type
    signature: "struct type *                                           \\\n  name##_HT_REPLACE(struct
      name *head, struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:210,1
    - Dst: _HT_FIND_P_
      Src: /src/libevent/ht-internal.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 219
    functionName: _HT_REMOVE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_SET_HASH_
    - _HT_FIND_P_
    linkageType: ''
    returnType: struct type
    signature: "struct type *                                           \\\n  name##_HT_REMOVE(struct
      name *head, struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libevent/ht-internal.h:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - head
    - data
    argTypes:
    - struct name*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 246
    functionName: _HT_FOREACH_FN
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: void
    signature: "void _HT_FOREACH_FN(struct name *head,                               \\\n
      \                      int (*fn)(struct type *, void *),                \\\n
      \                      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: _HT_START
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_START(struct
      name *head)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 280
    functionName: _HT_NEXT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_ELT_HASH_
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_NEXT(struct
      name *head, struct type **elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 298
    functionName: _HT_NEXT_RMV
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_ELT_HASH_
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_NEXT_RMV(struct
      name *head, struct type **elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - hashfn
    - ','
    - eqfn
    - ','
    - load
    - ','
    - mallocfn
    - ','
    - reallocfn
    - ','
    - freefn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: HT_GENERATE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "HT_GENERATE(name, type, field, hashfn, eqfn, load, mallocfn,    \\\n
      \                   reallocfn, freefn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mallocfn
      Src: /src/libevent/ht-internal.h:332,1
    - Dst: memset
      Src: /src/libevent/ht-internal.h:334,1
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:341,1
    - Dst: freefn
      Src: /src/libevent/ht-internal.h:348,1
    - Dst: reallocfn
      Src: /src/libevent/ht-internal.h:352,1
    - Dst: memset
      Src: /src/libevent/ht-internal.h:354,1
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:359,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - head
    - size
    argTypes:
    - struct name*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 375
    functionName: _HT_GROW
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 2
    functionsReached:
    - freefn
    - HT_ELT_HASH_
    - mallocfn
    - memset
    - reallocfn
    linkageType: ''
    returnType: int
    signature: int _HT_GROW(struct name *head, unsigned size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freefn
      Src: /src/libevent/ht-internal.h:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: _HT_CLEAR
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - freefn
    linkageType: ''
    returnType: void
    signature: void _HT_CLEAR(struct name *head)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:410,1
    - Dst: hashfn
      Src: /src/libevent/ht-internal.h:410,1
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:412,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 420
    functionName: _HT_REP_IS_BAD_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_ELT_HASH_
    - hashfn
    linkageType: ''
    returnType: int
    signature: int _HT_REP_IS_BAD_(const struct name *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - name
    - ','
    - field
    - ','
    - hashfn
    - ','
    - head
    - ','
    - eltype
    - ','
    - elm
    - ','
    - var
    - ','
    - y
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 440
    functionName: HT_FIND_OR_INSERT_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FIND_OR_INSERT_(name, field, hashfn, head, eltype, elm, var, y,
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - field
    - ','
    - head
    - ','
    - elm
    - ','
    - newent
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: HT_FOI_INSERT_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FOI_INSERT_(field, head, elm, newent, var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pwrite
      Src: /src/libevent/devpoll.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - devpollop
    argTypes:
    - struct devpollop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: devpoll_commit
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - pwrite
    linkageType: ''
    returnType: int
    signature: int devpoll_commit(struct devpollop *devpollop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_commit
      Src: /src/libevent/devpoll.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - devpollop
    - fd
    - events
    argTypes:
    - struct devpollop*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: devpoll_queue
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - devpoll_commit
    linkageType: ''
    returnType: int
    signature: int devpoll_queue(struct devpollop *devpollop, int fd, int events)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/devpoll.c:127,1
    - Dst: getrlimit
      Src: /src/libevent/devpoll.c:130,1
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/devpoll.c:135,1
    - Dst: event_warn
      Src: /src/libevent/devpoll.c:136,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:137,1
    - Dst: mm_calloc
      Src: /src/libevent/devpoll.c:146,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:148,1
    - Dst: close
      Src: /src/libevent/devpoll.c:149,1
    - Dst: mm_calloc
      Src: /src/libevent/devpoll.c:154,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:156,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:157,1
    - Dst: close
      Src: /src/libevent/devpoll.c:158,1
    - Dst: evsig_init_
      Src: /src/libevent/devpoll.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 165
    functionName: devpoll_init
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - event_warn
    - evutil_open_closeonexec_
    - close
    - mm_free
    - evsig_init_
    - getrlimit
    linkageType: ''
    returnType: void
    signature: 'void *

      devpoll_init(struct event_base *base)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_commit
      Src: /src/libevent/devpoll.c:176,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/devpoll.c:185,1
    - Dst: ioctl
      Src: /src/libevent/devpoll.c:187,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/devpoll.c:189,1
    - Dst: event_warn
      Src: /src/libevent/devpoll.c:193,1
    - Dst: event_debug
      Src: /src/libevent/devpoll.c:200,1
    - Dst: evmap_io_active_
      Src: /src/libevent/devpoll.c:220,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 224
    functionName: devpoll_dispatch
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - ioctl
    - EVBASE_ACQUIRE_LOCK
    - event_warn
    - evmap_io_active_
    - EVBASE_RELEASE_LOCK
    - devpoll_commit
    - event_debug
    linkageType: ''
    returnType: int
    signature: int devpoll_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 251
    functionName: devpoll_add
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - devpoll_queue
    linkageType: ''
    returnType: int
    signature: int devpoll_add(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:273,1
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:284,1
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 292
    functionName: devpoll_del
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - devpoll_queue
    linkageType: ''
    returnType: int
    signature: int devpoll_del(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/devpoll.c:299,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:301,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:303,1
    - Dst: close
      Src: /src/libevent/devpoll.c:305,1
    - Dst: memset
      Src: /src/libevent/devpoll.c:307,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: devpoll_dealloc
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - evsig_dealloc_
    - memset
    - close
    - mm_free
    linkageType: ''
    returnType: void
    signature: void devpoll_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: DIV_ROUNDUP
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIV_ROUNDUP(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: SELECT_ALLOC_SIZE
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECT_ALLOC_SIZE(n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/select.c:114,1
    - Dst: select_resize
      Src: /src/libevent/select.c:117,1
    - Dst: SELECT_ALLOC_SIZE
      Src: /src/libevent/select.c:117,1
    - Dst: select_free_selectop
      Src: /src/libevent/select.c:118,1
    - Dst: sigfd_init_
      Src: /src/libevent/select.c:122,1
    - Dst: evsig_init_
      Src: /src/libevent/select.c:123,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/select.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: select_init
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - select_free_selectop
    - mm_calloc
    - evutil_weakrand_seed_
    - sigfd_init_
    - evsig_init_
    - select_resize
    - SELECT_ALLOC_SIZE
    linkageType: ''
    returnType: void
    signature: 'void *

      select_init(struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sop
    argTypes:
    - struct selectop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: check_selectop
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check_selectop(struct selectop *sop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sop
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: check_selectop
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_selectop(sop)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: check_selectop
      Src: /src/libevent/select.c:146,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:150,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:153,1
    - Dst: memcpy
      Src: /src/libevent/select.c:164,1
    - Dst: memcpy
      Src: /src/libevent/select.c:166,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/select.c:171,1
    - Dst: select
      Src: /src/libevent/select.c:173,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/select.c:176,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:178,1
    - Dst: event_warn
      Src: /src/libevent/select.c:182,1
    - Dst: event_debug
      Src: /src/libevent/select.c:189,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:191,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/select.c:192,1
    - Dst: FD_ISSET
      Src: /src/libevent/select.c:197,1
    - Dst: FD_ISSET
      Src: /src/libevent/select.c:199,1
    - Dst: evmap_io_active_
      Src: /src/libevent/select.c:205,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:207,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 210
    functionName: select_dispatch
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - mm_realloc
    - EVBASE_ACQUIRE_LOCK
    - event_warn
    - FD_ISSET
    - select
    - evmap_io_active_
    - EVBASE_RELEASE_LOCK
    - evutil_weakrand_range_
    - event_debug
    - check_selectop
    - memcpy
    linkageType: ''
    returnType: int
    signature: int select_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_selectop
      Src: /src/libevent/select.c:219,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:221,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:224,1
    - Dst: memset
      Src: /src/libevent/select.c:236,1
    - Dst: memset
      Src: /src/libevent/select.c:238,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:242,1
    - Dst: event_warn
      Src: /src/libevent/select.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - sop
    - fdsz
    argTypes:
    - struct selectop*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 249
    functionName: select_resize
    functionSourceFile: /src/libevent/select.c
    functionUses: 1
    functionsReached:
    - check_selectop
    - memset
    - mm_realloc
    - event_warn
    linkageType: ''
    returnType: int
    signature: int select_resize(struct selectop *sop, int fdsz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/select.c:258,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:259,1
    - Dst: SELECT_ALLOC_SIZE
      Src: /src/libevent/select.c:273,1
    - Dst: select_resize
      Src: /src/libevent/select.c:277,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:278,1
    - Dst: FD_SET
      Src: /src/libevent/select.c:287,1
    - Dst: FD_SET
      Src: /src/libevent/select.c:289,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 293
    functionName: select_add
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - FD_SET
    - select_resize
    - check_selectop
    - SELECT_ALLOC_SIZE
    linkageType: ''
    returnType: int
    signature: int select_add(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/select.c:305,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:306,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:309,1
    - Dst: FD_CLR
      Src: /src/libevent/select.c:314,1
    - Dst: FD_CLR
      Src: /src/libevent/select.c:317,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 321
    functionName: select_del
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - FD_CLR
    - EVUTIL_ASSERT
    - check_selectop
    linkageType: ''
    returnType: int
    signature: int select_del(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/select.c:327,1
    - Dst: mm_free
      Src: /src/libevent/select.c:329,1
    - Dst: mm_free
      Src: /src/libevent/select.c:331,1
    - Dst: mm_free
      Src: /src/libevent/select.c:333,1
    - Dst: memset
      Src: /src/libevent/select.c:335,1
    - Dst: mm_free
      Src: /src/libevent/select.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sop
    argTypes:
    - struct selectop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: select_free_selectop
    functionSourceFile: /src/libevent/select.c
    functionUses: 1
    functionsReached:
    - memset
    - mm_free
    linkageType: ''
    returnType: void
    signature: void select_free_selectop(struct selectop *sop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/select.c:342,1
    - Dst: select_free_selectop
      Src: /src/libevent/select.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: select_dealloc
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - evsig_dealloc_
    - select_free_selectop
    linkageType: ''
    returnType: void
    signature: void select_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: EVSIGBASE_LOCK
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVSIGBASE_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: EVSIGBASE_UNLOCK
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVSIGBASE_UNLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:124,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: evsig_set_base_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - EVSIGBASE_LOCK
    - EVSIGBASE_UNLOCK
    linkageType: ''
    returnType: void
    signature: void evsig_set_base_(struct event_base *base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/signal.c:143,1
    - Dst: recv
      Src: /src/libevent/signal.c:147,1
    - Dst: read
      Src: /src/libevent/signal.c:149,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/signal.c:152,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/signal.c:153,1
    - Dst: event_sock_err
      Src: /src/libevent/signal.c:154,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/signal.c:167,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/signal.c:170,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/signal.c:172,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 173
    functionName: evsig_cb
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - evutil_socket_geterror
    - read
    - EVUTIL_ERR_RW_RETRIABLE
    - evmap_signal_active_
    - memset
    - recv
    - event_sock_err
    linkageType: ''
    returnType: void
    signature: void evsig_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/signal.c:183,1
    - Dst: event_sock_warn
      Src: /src/libevent/signal.c:187,1
    - Dst: event_sock_err
      Src: /src/libevent/signal.c:189,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:195,1
    - Dst: event_assign
      Src: /src/libevent/signal.c:200,1
    - Dst: event_priority_set
      Src: /src/libevent/signal.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 209
    functionName: evsig_init_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 7
    functionsReached:
    - event_sock_warn
    - event_assign
    - evutil_make_internal_pipe_
    - mm_free
    - event_priority_set
    - event_sock_err
    linkageType: ''
    returnType: int
    signature: int evsig_init_(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/signal.c:219,1
    - Dst: mm_realloc
      Src: /src/libevent/signal.c:221,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:223,1
    - Dst: memset
      Src: /src/libevent/signal.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sig
    - evsignal
    argTypes:
    - struct evsig_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 234
    functionName: evsig_ensure_saved_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - event_warn
    - memset
    - mm_realloc
    - event_debug
    linkageType: ''
    returnType: int
    signature: int evsig_ensure_saved_(struct evsig_info *sig, int evsignal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evsig_ensure_saved_
      Src: /src/libevent/signal.c:250,1
    - Dst: mm_malloc
      Src: /src/libevent/signal.c:254,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:256,1
    - Dst: memset
      Src: /src/libevent/signal.c:262,1
    - Dst: sigfillset
      Src: /src/libevent/signal.c:267,1
    - Dst: sigaction
      Src: /src/libevent/signal.c:269,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:270,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:271,1
    - Dst: signal
      Src: /src/libevent/signal.c:276,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:277,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - base
    - evsignal
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 286
    functionName: evsig_set_handler_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - mm_malloc
    - evsig_ensure_saved_
    - event_warn
    - sigfillset
    - sigaction
    - signal
    - mm_free
    - memset
    linkageType: ''
    returnType: int
    signature: "int evsig_set_handler_(struct event_base *base,\n    int evsignal,
      void (__cdecl *handler)(int))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signal.c:294,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:297,1
    - Dst: event_warnx
      Src: /src/libevent/signal.c:299,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:310,1
    - Dst: event_debug
      Src: /src/libevent/signal.c:312,1
    - Dst: evsig_set_handler_
      Src: /src/libevent/signal.c:313,1
    - Dst: event_add_nolock_
      Src: /src/libevent/signal.c:319,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:327,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - base
    - evsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 332
    functionName: evsig_add
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - EVSIGBASE_LOCK
    - EVSIGBASE_UNLOCK
    - event_add_nolock_
    - EVUTIL_ASSERT
    - event_warnx
    - event_debug
    - evsig_set_handler_
    linkageType: ''
    returnType: int
    signature: int evsig_add(struct event_base *base, evutil_socket_t evsignal, short
      old, short events, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/libevent/signal.c:355,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:356,1
    - Dst: signal
      Src: /src/libevent/signal.c:360,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:361,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - base
    - evsignal
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 369
    functionName: evsig_restore_handler_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - mm_free
    - signal
    - sigaction
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evsig_restore_handler_(struct event_base *base, int evsignal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signal.c:374,1
    - Dst: event_debug
      Src: /src/libevent/signal.c:376,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/signal.c:377,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:379,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:382,1
    - Dst: evsig_restore_handler_
      Src: /src/libevent/signal.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - base
    - evsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 385
    functionName: evsig_del
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - EVSIGBASE_LOCK
    - EVSIGBASE_UNLOCK
    - EVUTIL_ASSERT
    - EV_SOCK_ARG
    - evsig_restore_handler_
    - event_debug
    linkageType: ''
    returnType: int
    signature: int evsig_del(struct event_base *base, evutil_socket_t evsignal, short
      old, short events, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/signal.c:392,1
    - Dst: event_warnx
      Src: /src/libevent/signal.c:397,1
    - Dst: signal
      Src: /src/libevent/signal.c:404,1
    - Dst: send
      Src: /src/libevent/signal.c:410,1
    - Dst: write
      Src: /src/libevent/signal.c:425,1
    - Dst: event_warnx
      Src: /src/libevent/signal.c:428,1
    - Dst: strerror
      Src: /src/libevent/signal.c:428,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/signal.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 437
    functionName: evsig_handler
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - write
    - event_warnx
    - strerror
    - signal
    - EVUTIL_SOCKET_ERROR
    - send
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: void evsig_handler(int sig)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/signal.c:444,1
    - Dst: event_debug_unassign
      Src: /src/libevent/signal.c:449,1
    - Dst: evsig_restore_handler_
      Src: /src/libevent/signal.c:453,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:455,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:461,1
    - Dst: evutil_closesocket
      Src: /src/libevent/signal.c:464,1
    - Dst: evutil_closesocket
      Src: /src/libevent/signal.c:468,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 478
    functionName: evsig_dealloc_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 7
    functionsReached:
    - EVSIGBASE_LOCK
    - EVSIGBASE_UNLOCK
    - event_debug_unassign
    - evutil_closesocket
    - evsig_restore_handler_
    - event_del
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evsig_dealloc_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/signal.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: evsig_free_globals_locks
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_FREE_LOCK
    linkageType: ''
    returnType: void
    signature: void evsig_free_globals_locks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_free_globals_locks
      Src: /src/libevent/signal.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: evsig_free_globals_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - evsig_free_globals_locks
    linkageType: ''
    returnType: void
    signature: void evsig_free_globals_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/signal.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 504
    functionName: evsig_global_setup_locks_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - EVTHREAD_SETUP_GLOBAL_LOCK
    linkageType: ''
    returnType: int
    signature: int evsig_global_setup_locks_(const int enable_locks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:69,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:70,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:72,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: bufferevent_suspend_read_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 11
    functionsReached:
    - struct bufferevent*::be_ops::disable
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_suspend_read_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:80,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:81,1
    - Dst: struct bufferevent*::be_ops::enable
      Src: /src/libevent/bufferevent.c:84,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: bufferevent_unsuspend_read_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 13
    functionsReached:
    - BEV_LOCK
    - struct bufferevent*::be_ops::enable
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_unsuspend_read_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:91,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:92,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:94,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: bufferevent_suspend_write_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 7
    functionsReached:
    - struct bufferevent*::be_ops::disable
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_suspend_write_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:102,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:103,1
    - Dst: struct bufferevent*::be_ops::enable
      Src: /src/libevent/bufferevent.c:106,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: bufferevent_unsuspend_write_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 7
    functionsReached:
    - BEV_LOCK
    - struct bufferevent*::be_ops::enable
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_unsuspend_write_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:127,1
    - Dst: bufferevent_trigger
      Src: /src/libevent/bufferevent.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: bufferevent_inbuf_wm_check
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_trigger
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void bufferevent_inbuf_wm_check(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:143,1
    - Dst: bufferevent_wm_suspend_read
      Src: /src/libevent/bufferevent.c:146,1
    - Dst: bufferevent_wm_unsuspend_read
      Src: /src/libevent/bufferevent.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: bufferevent_inbuf_wm_cb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_wm_unsuspend_read
    - evbuffer_get_length
    - bufferevent_wm_suspend_read
    linkageType: ''
    returnType: void
    signature: "void bufferevent_inbuf_wm_cb(struct evbuffer *buf,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:157,1
    - Dst: struct bufferevent*::errorcb
      Src: /src/libevent/bufferevent.c:163,1
    - Dst: struct bufferevent*::readcb
      Src: /src/libevent/bufferevent.c:167,1
    - Dst: bufferevent_inbuf_wm_check
      Src: /src/libevent/bufferevent.c:168,1
    - Dst: struct bufferevent*::writecb
      Src: /src/libevent/bufferevent.c:172,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/bufferevent.c:179,1
    - Dst: struct bufferevent*::errorcb
      Src: /src/libevent/bufferevent.c:180,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 183
    functionName: bufferevent_run_deferred_callbacks_locked
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_decref_and_unlock_
    - BEV_LOCK
    - bufferevent_inbuf_wm_check
    - struct bufferevent*::readcb
    - struct bufferevent*::writecb
    - struct bufferevent*::errorcb
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_deferred_callbacks_locked(struct event_callback
      *cb, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:191,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:202,1
    - Dst: errorcb
      Src: /src/libevent/bufferevent.c:202,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:208,1
    - Dst: readcb
      Src: /src/libevent/bufferevent.c:208,1
    - Dst: bufferevent_inbuf_wm_check
      Src: /src/libevent/bufferevent.c:209,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:215,1
    - Dst: writecb
      Src: /src/libevent/bufferevent.c:215,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/bufferevent.c:224,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:225,1
    - Dst: errorcb
      Src: /src/libevent/bufferevent.c:225,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 229
    functionName: bufferevent_run_deferred_callbacks_unlocked
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - UNLOCKED
    - bufferevent_decref_and_unlock_
    - BEV_LOCK
    - writecb
    - bufferevent_inbuf_wm_check
    - errorcb
    - readcb
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_deferred_callbacks_unlocked(struct event_callback
      *cb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: UNLOCKED
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCKED(stmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: SCHEDULE_DEFERRED
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHEDULE_DEFERRED(bevp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:244,1
    - Dst: SCHEDULE_DEFERRED
      Src: /src/libevent/bufferevent.c:249,1
    - Dst: struct bufferevent*::readcb
      Src: /src/libevent/bufferevent.c:251,1
    - Dst: bufferevent_inbuf_wm_check
      Src: /src/libevent/bufferevent.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bufev
    - options
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 254
    functionName: bufferevent_run_readcb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - bufferevent_inbuf_wm_check
    - struct bufferevent*::readcb
    - SCHEDULE_DEFERRED
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_readcb_(struct bufferevent *bufev, int options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:260,1
    - Dst: SCHEDULE_DEFERRED
      Src: /src/libevent/bufferevent.c:265,1
    - Dst: struct bufferevent*::writecb
      Src: /src/libevent/bufferevent.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bufev
    - options
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 269
    functionName: bufferevent_run_writecb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - struct bufferevent*::writecb
    - SCHEDULE_DEFERRED
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_writecb_(struct bufferevent *bufev, int options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:279,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent.c:280,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - iotype
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: bufferevent_trigger
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_trigger_nolock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_trigger(struct bufferevent *bufev, short iotype, int
      options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:288,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/bufferevent.c:293,1
    - Dst: SCHEDULE_DEFERRED
      Src: /src/libevent/bufferevent.c:294,1
    - Dst: struct bufferevent*::errorcb
      Src: /src/libevent/bufferevent.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bufev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: bufferevent_run_eventcb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 13
    functionsReached:
    - struct bufferevent*::errorcb
    - EVUTIL_SOCKET_ERROR
    - SCHEDULE_DEFERRED
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_eventcb_(struct bufferevent *bufev, short what,
      int options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:303,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent.c:304,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: bufferevent_trigger_event
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void bufferevent_trigger_event(struct bufferevent *bufev, short what,
      int options)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/bufferevent.c:317,1
    - Dst: evbuffer_new
      Src: /src/libevent/bufferevent.c:322,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:330,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:331,1
    - Dst: bufferevent_ratelim_init_
      Src: /src/libevent/bufferevent.c:335,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent.c:347,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent.c:353,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/bufferevent.c:357,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/bufferevent.c:359,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/bufferevent.c:363,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/bufferevent.c:365,1
    - Dst: evbuffer_set_parent_
      Src: /src/libevent/bufferevent.c:371,1
    - Dst: evbuffer_set_parent_
      Src: /src/libevent/bufferevent.c:372,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:378,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:382,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - bufev_private
    - base
    - ops
    - options
    argTypes:
    - struct bufferevent_private*
    - struct event_base*
    - struct bufferevent_ops*
    - enum bufferevent_options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 386
    functionName: bufferevent_init_common_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 5
    functionsReached:
    - bufferevent_ratelim_init_
    - event_base_get_npriorities
    - evbuffer_new
    - bufferevent_enable_locking_
    - event_warnx
    - evbuffer_free
    - evutil_timerclear
    - event_deferred_cb_init_
    - evbuffer_set_parent_
    linkageType: ''
    returnType: int
    signature: "int bufferevent_init_common_(struct bufferevent_private *bufev_private,\n
      \   struct event_base *base,\n    const struct bufferevent_ops *ops,\n    enum
      bufferevent_options options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:393,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - bufev
    - readcb
    - writecb
    - eventcb
    - cbarg
    argTypes:
    - struct bufferevent*
    - bufferevent_data_cb
    - bufferevent_data_cb
    - bufferevent_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: bufferevent_setcb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 20
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: void
    signature: "void bufferevent_setcb(struct bufferevent *bufev,\n    bufferevent_data_cb
      readcb, bufferevent_data_cb writecb,\n    bufferevent_event_cb eventcb, void
      *cbarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:410,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - bufev
    - readcb_ptr
    - writecb_ptr
    - eventcb_ptr
    - cbarg_ptr
    argTypes:
    - struct bufferevent*
    - bufferevent_data_cb*
    - bufferevent_data_cb*
    - bufferevent_event_cb*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 421
    functionName: bufferevent_getcb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: void
    signature: "void bufferevent_getcb(struct bufferevent *bufev,\n    bufferevent_data_cb
      *readcb_ptr,\n    bufferevent_data_cb *writecb_ptr,\n    bufferevent_event_cb
      *eventcb_ptr,\n    void **cbarg_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: bufferevent_get_input
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      bufferevent_get_input(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: bufferevent_get_output
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      bufferevent_get_output(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: bufferevent_get_base
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      bufferevent_get_base(struct bufferevent *bufev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/libevent/bufferevent.c:444,1
    - Dst: event_get_priority
      Src: /src/libevent/bufferevent.c:445,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/bufferevent.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: bufferevent_get_priority
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - event_get_priority
    - event_initialized
    - event_base_get_npriorities
    linkageType: ''
    returnType: int
    signature: int bufferevent_get_priority(const struct bufferevent *bufev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add
      Src: /src/libevent/bufferevent.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - data
    - size
    argTypes:
    - struct bufferevent*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 7
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: bufferevent_write
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 3
    functionsReached:
    - evbuffer_add
    linkageType: ''
    returnType: int
    signature: int bufferevent_write(struct bufferevent *bufev, const void *data,
      size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bufev
    - buf
    argTypes:
    - struct bufferevent*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 6
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: bufferevent_write_buffer
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_buffer
    linkageType: ''
    returnType: int
    signature: int bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_remove
      Src: /src/libevent/bufferevent.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - data
    - size
    argTypes:
    - struct bufferevent*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: bufferevent_read
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - evbuffer_remove
    linkageType: ''
    returnType: size_t
    signature: size_t bufferevent_read(struct bufferevent *bufev, void *data, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bufev
    - buf
    argTypes:
    - struct bufferevent*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 6
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: bufferevent_read_buffer
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_buffer
    linkageType: ''
    returnType: int
    signature: int bufferevent_read_buffer(struct bufferevent *bufev, struct evbuffer
      *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:489,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:493,1
    - Dst: struct bufferevent*::be_ops::enable
      Src: /src/libevent/bufferevent.c:501,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:504,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 508
    functionName: bufferevent_enable
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 15
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - struct bufferevent*::be_ops::enable
    - event_debug
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_enable(struct bufferevent *bufev, short event)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:516,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:520,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:525,1
    - Dst: struct bufferevent*::be_ops::adj_timeouts
      Src: /src/libevent/bufferevent.c:529,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - bufev
    - tv_read
    - tv_write
    argTypes:
    - struct bufferevent*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 533
    functionName: bufferevent_set_timeouts
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 9
    functionsReached:
    - struct bufferevent*::be_ops::adj_timeouts
    - BEV_LOCK
    - evutil_timerclear
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: "int bufferevent_set_timeouts(struct bufferevent *bufev,\n\t\t\t const
      struct timeval *tv_read,\n\t\t\t const struct timeval *tv_write)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/bufferevent.c:544,1
    - Dst: memset
      Src: /src/libevent/bufferevent.c:545,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/bufferevent.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bufev
    - timeout_read
    - timeout_write
    argTypes:
    - struct bufferevent*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 557
    functionName: bufferevent_settimeout
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - memset
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void bufferevent_settimeout(struct bufferevent *bufev,\n\t\t       int
      timeout_read, int timeout_write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:564,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:566,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:570,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 575
    functionName: bufferevent_disable_hard_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - struct bufferevent*::be_ops::disable
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_disable_hard_(struct bufferevent *bufev, short event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:582,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:585,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:588,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 592
    functionName: bufferevent_disable
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 11
    functionsReached:
    - event_debug
    - BEV_LOCK
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::disable
    linkageType: ''
    returnType: int
    signature: int bufferevent_disable(struct bufferevent *bufev, short event)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:602,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:604,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent.c:621,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/bufferevent.c:625,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:629,1
    - Dst: bufferevent_wm_suspend_read
      Src: /src/libevent/bufferevent.c:630,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:631,1
    - Dst: bufferevent_wm_unsuspend_read
      Src: /src/libevent/bufferevent.c:632,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent.c:636,1
    - Dst: bufferevent_wm_unsuspend_read
      Src: /src/libevent/bufferevent.c:639,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:642,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - bufev
    - events
    - lowmark
    - highmark
    argTypes:
    - struct bufferevent*
    - short
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 643
    functionName: bufferevent_setwatermark
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 5
    functionsReached:
    - bufferevent_wm_unsuspend_read
    - evbuffer_cb_set_flags
    - BEV_UNLOCK
    - BEV_LOCK
    - bufferevent_wm_suspend_read
    - evbuffer_get_length
    - evbuffer_cb_clear_flags
    - BEV_UPCAST
    - evbuffer_add_cb
    linkageType: ''
    returnType: void
    signature: "void bufferevent_setwatermark(struct bufferevent *bufev, short events,\n
      \   size_t lowmark, size_t highmark)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:650,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:655,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:660,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - bufev
    - events
    - lowmark
    - highmark
    argTypes:
    - struct bufferevent*
    - short
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: bufferevent_getwatermark
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: "int bufferevent_getwatermark(struct bufferevent *bufev, short events,\n
      \   size_t *lowmark, size_t *highmark)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:677,1
    - Dst: struct bufferevent*::be_ops::flush
      Src: /src/libevent/bufferevent.c:679,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bufev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 682
    functionName: bufferevent_flush
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - struct bufferevent*::be_ops::flush
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: "int bufferevent_flush(struct bufferevent *bufev,\n    short iotype,\n
      \   enum bufferevent_flush_mode mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:687,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: bufferevent_incref_and_lock_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 14
    functionsReached:
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_incref_and_lock_(struct bufferevent *bufev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:697,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - donor
    - recipient
    argTypes:
    - struct bufferevent*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 707
    functionName: bufferevent_transfer_lock_ownership_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: "void bufferevent_transfer_lock_ownership_(struct bufferevent *donor,\n
      \   struct bufferevent *recipient)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:713,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent.c:718,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:721,1
    - Dst: struct bufferevent*::be_ops::unlink
      Src: /src/libevent/bufferevent.c:726,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent.c:736,1
    - Dst: evbuffer_get_callbacks_
      Src: /src/libevent/bufferevent.c:739,1
    - Dst: evbuffer_get_callbacks_
      Src: /src/libevent/bufferevent.c:740,1
    - Dst: event_callback_finalize_many_
      Src: /src/libevent/bufferevent.c:742,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:746,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 710
    functionDepth: 4
    functionLinenumber: 710
    functionLinenumberEnd: 749
    functionName: bufferevent_decref_and_unlock_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 20
    functionsReached:
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::unlink
    - EVUTIL_ASSERT
    - event_initialized
    - evbuffer_get_callbacks_
    - BEV_UPCAST
    - event_callback_finalize_many_
    linkageType: ''
    returnType: int
    signature: int bufferevent_decref_and_unlock_(struct bufferevent *bufev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:756,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:758,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/bufferevent.c:759,1
    - Dst: struct bufferevent*::be_ops::destruct
      Src: /src/libevent/bufferevent.c:763,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:769,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:770,1
    - Dst: bufferevent_remove_from_rate_limit_group_internal_
      Src: /src/libevent/bufferevent.c:774,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent.c:775,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:780,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/bufferevent.c:783,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent.c:787,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent.c:800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - evcb
    - arg_
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 801
    functionName: bufferevent_finalize_cb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_underlying
    - BEV_UNLOCK
    - BEV_LOCK
    - bufferevent_remove_from_rate_limit_group_internal_
    - evbuffer_free
    - EVTHREAD_FREE_LOCK
    - BEV_UPCAST
    - mm_free
    - struct bufferevent*::be_ops::destruct
    - bufferevent_decref_
    linkageType: ''
    returnType: void
    signature: void bufferevent_finalize_cb_(struct event_callback *evcb, void *arg_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:806,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: bufferevent_decref
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_decref_and_unlock_
    - BEV_LOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_decref(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:813,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent.c:814,1
    - Dst: bufferevent_cancel_all_
      Src: /src/libevent/bufferevent.c:815,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 810
    functionDepth: 5
    functionLinenumber: 810
    functionLinenumberEnd: 817
    functionName: bufferevent_free
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 11
    functionsReached:
    - bufferevent_cancel_all_
    - bufferevent_decref_and_unlock_
    - BEV_LOCK
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void bufferevent_free(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:822,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:828,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 831
    functionName: bufferevent_incref
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_incref(struct bufferevent *bufev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:841,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/bufferevent.c:843,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:845,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:846,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:847,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:848,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/bufferevent.c:850,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:853,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:854,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:856,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:857,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/bufferevent.c:859,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/bufferevent.c:860,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:862,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent.c:863,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - bufev
    - lock
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 867
    functionName: bufferevent_enable_locking_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 6
    functionsReached:
    - bufferevent_get_underlying
    - bufferevent_enable_locking_
    - BEV_UPCAST
    - EVTHREAD_ALLOC_LOCK
    - evbuffer_enable_locking
    linkageType: ''
    returnType: int
    signature: int bufferevent_enable_locking_(struct bufferevent *bufev, void *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:875,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:877,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:879,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 882
    functionName: bufferevent_setfd
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - event_debug
    - BEV_LOCK
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::ctrl
    linkageType: ''
    returnType: int
    signature: int bufferevent_setfd(struct bufferevent *bev, evutil_socket_t fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:891,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:893,1
    - Dst: evutil_closesocket
      Src: /src/libevent/bufferevent.c:897,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:902,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:906,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:907,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 910
    functionName: bufferevent_replacefd
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 3
    functionsReached:
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::ctrl
    - BEV_LOCK
    - evutil_closesocket
    - event_debug
    linkageType: ''
    returnType: int
    signature: int bufferevent_replacefd(struct bufferevent *bev, evutil_socket_t
      fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:918,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:920,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:922,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 925
    functionName: bufferevent_getfd
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 6
    functionsReached:
    - event_debug
    - BEV_LOCK
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::ctrl
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t bufferevent_getfd(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:930,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:933,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 937
    functionName: bufferevent_get_options_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: enum bufferevent_options
    signature: enum bufferevent_options bufferevent_get_options_(struct bufferevent
      *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/bufferevent.c:944,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:945,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:947,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 949
    functionName: bufferevent_cancel_all_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - memset
    - struct bufferevent*::be_ops::ctrl
    linkageType: ''
    returnType: void
    signature: void bufferevent_cancel_all_(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:955,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 959
    functionName: bufferevent_get_enabled
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: short
    signature: short bufferevent_get_enabled(struct bufferevent *bufev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:967,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:969,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 972
    functionName: bufferevent_get_underlying
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 2
    functionsReached:
    - BEV_LOCK
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::ctrl
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      bufferevent_get_underlying(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:978,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent.c:979,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent.c:980,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - ctx
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 974
    functionDepth: 5
    functionLinenumber: 974
    functionLinenumberEnd: 982
    functionName: bufferevent_generic_read_timeout_cb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_disable
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void bufferevent_generic_read_timeout_cb(evutil_socket_t fd, short
      event, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:987,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent.c:988,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent.c:989,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - ctx
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 983
    functionDepth: 5
    functionLinenumber: 983
    functionLinenumberEnd: 991
    functionName: bufferevent_generic_write_timeout_cb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_disable
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void bufferevent_generic_write_timeout_cb(evutil_socket_t fd, short
      event, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/bufferevent.c:996,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1000
    functionName: bufferevent_init_generic_timeout_cbs_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 4
    functionsReached:
    - event_assign
    linkageType: ''
    returnType: void
    signature: void bufferevent_init_generic_timeout_cbs_(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:1006,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1009,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1010,1
    - Dst: event_del
      Src: /src/libevent/bufferevent.c:1012,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1015,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:1016,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1017,1
    - Dst: event_del
      Src: /src/libevent/bufferevent.c:1019,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1002
    functionDepth: 4
    functionLinenumber: 1002
    functionLinenumberEnd: 1023
    functionName: bufferevent_generic_adj_timeouts_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - evutil_timerisset
    - evbuffer_get_length
    - event_del
    - BEV_UPCAST
    - event_add
    linkageType: ''
    returnType: int
    signature: int bufferevent_generic_adj_timeouts_(struct bufferevent *bev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_pending
      Src: /src/libevent/bufferevent.c:1029,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1030,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent.c:1031,1
    - Dst: event_remove_timer
      Src: /src/libevent/bufferevent.c:1034,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent.c:1037,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1038,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent.c:1039,1
    - Dst: event_remove_timer
      Src: /src/libevent/bufferevent.c:1042,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1025
    functionDepth: 5
    functionLinenumber: 1025
    functionLinenumberEnd: 1046
    functionName: bufferevent_generic_adj_existing_timeouts_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - event_pending
    - evutil_timerisset
    - event_remove_timer
    - bufferevent_add_event_
    linkageType: ''
    returnType: int
    signature: int bufferevent_generic_adj_existing_timeouts_(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1051,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1052,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ev
    - tv
    argTypes:
    - struct event*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1055
    functionName: bufferevent_add_event_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 7
    functionsReached:
    - event_add
    - evutil_timerisset
    linkageType: ''
    returnType: int
    signature: int bufferevent_add_event_(struct event *ev, const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1063
    functionName: bufferevent_lock
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - bufferevent_incref_and_lock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_lock(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 5
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: bufferevent_unlock
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_unlock(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:45,1
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: epoll_create
    functionSourceFile: /src/libevent/epoll_sub.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int epoll_create(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - epfd
    - op
    - fd
    - event
    argTypes:
    - int
    - int
    - int
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: epoll_ctl
    functionSourceFile: /src/libevent/epoll_sub.c
    functionUses: 2
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:62,1
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - epfd
    - events
    - maxevents
    - timeout
    argTypes:
    - int
    - struct epoll_event*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: epoll_wait
    functionSourceFile: /src/libevent/epoll_sub.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int epoll_wait(int epfd, struct epoll_event *events, int maxevents,
      int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: main
    functionSourceFile: /src/libevent/cmake/CheckFileOffsetBits.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExitThread
      Src: /src/libevent/test/tinytest.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: timeout_thread_proc_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - ExitThread
    linkageType: ''
    returnType: DWORD
    signature: DWORD timeout_thread_proc_(LPVOID arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/tinytest.c:114,1
    - Dst: CreateThread
      Src: /src/libevent/test/tinytest.c:122,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/test/tinytest.c:124,1
    - Dst: GetExitCodeThread
      Src: /src/libevent/test/tinytest.c:127,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:128,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:132,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:134,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - testcase
    - env
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts:
    - condition: (opt_timeout)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libevent/test/tinytest.c
    constantsTouched: []
    func_position:
      end: 143
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 143
    functionName: testcase_run_in_thread_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - printf
    - CloseHandle
    - CreateThread
    - WaitForSingleObject
    - GetExitCodeThread
    - assert
    linkageType: ''
    returnType: enum outcome
    signature: enum outcome testcase_run_in_thread_(const struct testcase_t *testcase,
      void *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/libevent/test/tinytest.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: testcase_set_timeout_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - alarm
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int testcase_set_timeout_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/libevent/test/tinytest.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: testcase_reset_timeout_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - alarm
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int testcase_reset_timeout_(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct testcase_t*::setup::setup_fn
      Src: /src/libevent/test/tinytest.c:162,1
    - Dst: testcase_run_in_thread_
      Src: /src/libevent/test/tinytest.c:173,1
    - Dst: testcase_set_timeout_
      Src: /src/libevent/test/tinytest.c:175,1
    - Dst: struct testcase_t*::fn
      Src: /src/libevent/test/tinytest.c:176,1
    - Dst: testcase_reset_timeout_
      Src: /src/libevent/test/tinytest.c:177,1
    - Dst: struct testcase_t*::fn
      Src: /src/libevent/test/tinytest.c:180,1
    - Dst: struct testcase_t*::setup::cleanup_fn
      Src: /src/libevent/test/tinytest.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 191
    functionName: testcase_run_bare_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - struct testcase_t*::setup::setup_fn
    - struct testcase_t*::fn
    - testcase_reset_timeout_
    - testcase_set_timeout_
    - struct testcase_t*::setup::cleanup_fn
    - testcase_run_in_thread_
    linkageType: ''
    returnType: enum outcome
    signature: enum outcome testcase_run_bare_(const struct testcase_t *testcase)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:216,1
    - Dst: abort
      Src: /src/libevent/test/tinytest.c:218,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:221,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:223,1
    - Dst: memset
      Src: /src/libevent/test/tinytest.c:226,1
    - Dst: memset
      Src: /src/libevent/test/tinytest.c:227,1
    - Dst: CreateProcessA
      Src: /src/libevent/test/tinytest.c:230,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:233,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/test/tinytest.c:236,1
    - Dst: GetExitCodeProcess
      Src: /src/libevent/test/tinytest.c:240,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:242,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:244,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:246,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:247,1
    - Dst: pipe
      Src: /src/libevent/test/tinytest.c:259,1
    - Dst: perror
      Src: /src/libevent/test/tinytest.c:260,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:263,1
    - Dst: fork
      Src: /src/libevent/test/tinytest.c:264,1
    - Dst: vproc_transaction_begin
      Src: /src/libevent/test/tinytest.c:266,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:272,1
    - Dst: testcase_run_bare_
      Src: /src/libevent/test/tinytest.c:273,1
    - Dst: assert
      Src: /src/libevent/test/tinytest.c:274,1
    - Dst: write
      Src: /src/libevent/test/tinytest.c:276,1
    - Dst: perror
      Src: /src/libevent/test/tinytest.c:278,1
    - Dst: exit
      Src: /src/libevent/test/tinytest.c:279,1
    - Dst: exit
      Src: /src/libevent/test/tinytest.c:281,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:289,1
    - Dst: read
      Src: /src/libevent/test/tinytest.c:290,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:292,1
    - Dst: perror
      Src: /src/libevent/test/tinytest.c:295,1
    - Dst: waitpid
      Src: /src/libevent/test/tinytest.c:297,1
    - Dst: WEXITSTATUS
      Src: /src/libevent/test/tinytest.c:298,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:299,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:301,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:304,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 2
    argNames:
    - group
    - testcase
    argTypes:
    - struct testgroup_t*
    - struct testcase_t*
    assertStmts:
    - condition: (0<=(int)test_r && (int)test_r<=2)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/libevent/test/tinytest.c
    constantsTouched: []
    func_position:
      end: 310
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 310
    functionName: testcase_run_forked_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - vproc_transaction_begin
    - snprintf
    - pipe
    - GetExitCodeProcess
    - CreateProcessA
    - WEXITSTATUS
    - exit
    - assert
    - close
    - waitpid
    - write
    - printf
    - testcase_run_bare_
    - WaitForSingleObject
    - fork
    - perror
    - memset
    - CloseHandle
    - abort
    - read
    linkageType: ''
    returnType: enum outcome
    signature: "enum outcome testcase_run_forked_(const struct testgroup_t *group,\n\t\t
      \    const struct testcase_t *testcase)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/tinytest.c:374,1
    - Dst: strstr
      Src: /src/libevent/test/tinytest.c:375,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:379,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:382,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:384,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:386,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:388,1
    - Dst: strncmp
      Src: /src/libevent/test/tinytest.c:390,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - groups
    - arg
    - set
    - flag
    argTypes:
    - struct testgroup_t*
    - char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 400
    functionName: tinytest_set_flag_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - printf
    - strncmp
    - strstr
    - snprintf
    - puts
    linkageType: ''
    returnType: int
    signature: int tinytest_set_flag_(struct testgroup_t *groups, const char *arg,
      int set, unsigned long flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:405,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:406,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:407,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:408,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:409,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:410,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:411,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:412,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:413,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:414,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:415,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:416,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:417,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:418,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:420,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:421,1
    - Dst: exit
      Src: /src/libevent/test/tinytest.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - groups
    - list_groups
    argTypes:
    - struct testgroup_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 424
    functionName: usage
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 2
    functionsReached:
    - exit
    - tinytest_set_flag_
    - puts
    linkageType: ''
    returnType: void
    signature: void usage(struct testgroup_t *groups, int list_groups)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:431,1
    - Dst: process_test_option
      Src: /src/libevent/test/tinytest.c:434,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - groups
    - test
    argTypes:
    - struct testgroup_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 444
    functionName: process_test_alias
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - printf
    - process_test_option
    - strcmp
    linkageType: ''
    returnType: int
    signature: int process_test_alias(struct testgroup_t *groups, const char *test)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: process_test_alias
      Src: /src/libevent/test/tinytest.c:452,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:459,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:460,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:466,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - groups
    - test
    argTypes:
    - struct testgroup_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 471
    functionName: process_test_option
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 1
    functionsReached:
    - tinytest_set_flag_
    - process_test_alias
    - printf
    linkageType: ''
    returnType: int
    signature: int process_test_option(struct testgroup_t *groups, const char *test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aliases
    argTypes:
    - struct testlist_alias_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: tinytest_set_aliases
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tinytest_set_aliases(const struct testlist_alias_t *aliases)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/libevent/test/tinytest.c:485,1
    - Dst: stricmp
      Src: /src/libevent/test/tinytest.c:487,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:489,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:494,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:496,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:498,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:501,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:501,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:504,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:507,1
    - Dst: usage
      Src: /src/libevent/test/tinytest.c:508,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:509,1
    - Dst: usage
      Src: /src/libevent/test/tinytest.c:510,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:511,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:514,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:517,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:518,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:521,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:524,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:525,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:528,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:531,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:532,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:535,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:538,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:540,1
    - Dst: process_test_option
      Src: /src/libevent/test/tinytest.c:544,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:551,1
    - Dst: setvbuf
      Src: /src/libevent/test/tinytest.c:554,1
    - Dst: testcase_run_one
      Src: /src/libevent/test/tinytest.c:571,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:577,1
    - Dst: Sleep
      Src: /src/libevent/test/tinytest.c:579,1
    - Dst: sleep
      Src: /src/libevent/test/tinytest.c:581,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:590,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:601,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:604,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:607,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 114
    argCount: 3
    argNames:
    - c
    - v
    - groups
    argTypes:
    - int
    - char**
    - struct testgroup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 610
    functionName: tinytest_main
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - setvbuf
    - tinytest_set_flag_
    - fprintf
    - atoi
    - printf
    - Sleep
    - usage
    - sleep
    - snprintf
    - testcase_run_one
    - puts
    - strrchr
    - process_test_option
    - stricmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int tinytest_main(int c, const char **v, struct testgroup_t *groups)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 616
    functionName: tinytest_get_verbosity_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tinytest_get_verbosity_(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:622,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 627
    functionName: tinytest_set_test_failed_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - printf
    - puts
    linkageType: ''
    returnType: void
    signature: void tinytest_set_test_failed_(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: tinytest_set_test_skipped_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tinytest_set_test_skipped_(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libevent/test/tinytest.c:644,1
    - Dst: malloc
      Src: /src/libevent/test/tinytest.c:645,1
    - Dst: strdup
      Src: /src/libevent/test/tinytest.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - val_
    - len
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 654
    functionName: tinytest_format_hex_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      tinytest_format_hex_(const void *val_, unsigned long len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:95,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_bufferevent.c:96,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:97,1
    - Dst: bufferevent_read_buffer
      Src: /src/libevent/test/regress_bufferevent.c:100,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:102,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:104,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_bufferevent.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (evbuf != NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 7
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 3
    functionsReached:
    - bufferevent_disable
    - evbuffer_new
    - evbuffer_free
    - bufferevent_read_buffer
    - evbuffer_get_length
    - assert
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: writecb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 3
    functionsReached:
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void writecb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: errorcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:136,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:136,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:139,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:140,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:141,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:141,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:142,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:142,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:143,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:143,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:144,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:144,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:146,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:147,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:148,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:149,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:150,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:150,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:151,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:151,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:152,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:152,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:153,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:153,1
    - Dst: bufferevent_getcb
      Src: /src/libevent/test/regress_bufferevent.c:161,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:162,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:163,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:164,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:165,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:168,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:169,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:171,1
    - Dst: bufferevent_get_enabled
      Src: /src/libevent/test/regress_bufferevent.c:171,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:172,1
    - Dst: bufferevent_get_enabled
      Src: /src/libevent/test/regress_bufferevent.c:172,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:177,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:179,1
    - Dst: bufferevent_flush
      Src: /src/libevent/test/regress_bufferevent.c:179,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:182,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:184,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:185,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:185,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 2
    argNames:
    - use_pair
    - flush
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 196
    functionName: test_bufferevent_impl
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_new
    - bufferevent_disable
    - tt_int_op
    - bufferevent_get_underlying
    - tt_assert
    - bufferevent_flush
    - bufferevent_free
    - bufferevent_enable
    - bufferevent_getfd
    - tt_ptr_op
    - bufferevent_get_enabled
    - event_dispatch
    - bufferevent_write
    - bufferevent_pair_get_partner
    - tt_fd_op
    - bufferevent_pair_new
    - bufferevent_getcb
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_impl(int use_pair, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 9
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: test_bufferevent
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: test_bufferevent_pair
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 9
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: test_bufferevent_flush_normal
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_flush_normal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 9
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: test_bufferevent_flush_flush
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_flush_flush(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 9
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: test_bufferevent_flush_finished
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_flush_finished(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 9
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: test_bufferevent_pair_flush_normal
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush_normal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 9
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: test_bufferevent_pair_flush_flush
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush_flush(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 9
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: test_bufferevent_pair_flush_finished
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush_finished(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:212,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: test_bufferevent_ratelimit_div_by_zero
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_cfg_new
    - tt_ptr_op
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_ratelimit_div_by_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:223,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:224,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:228,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:229,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:233,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:234,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:238,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:239,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:243,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:244,1
    - Dst: ev_token_bucket_cfg_free
      Src: /src/libevent/test/regress_bufferevent.c:245,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:249,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:250,1
    - Dst: ev_token_bucket_cfg_free
      Src: /src/libevent/test/regress_bufferevent.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 257
    functionName: test_bufferevent_ratelimit_overflow
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_cfg_new
    - tt_ptr_op
    - ev_token_bucket_cfg_free
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_ratelimit_overflow(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: lu_find
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lock_wrapper
    signature: lock_wrapper *lu_find(void *lock_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cbs::alloc
      Src: /src/libevent/test/regress_bufferevent.c:299,1
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:300,1
    - Dst: realloc
      Src: /src/libevent/test/regress_bufferevent.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: trace_lock_alloc
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - realloc
    - cbs::alloc
    - lu_find
    linkageType: ''
    returnType: void
    signature: void *trace_lock_alloc(unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:314,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:316,1
    - Dst: cbs::free
      Src: /src/libevent/test/regress_bufferevent.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: trace_lock_free
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - cbs::free
    - lu_find
    linkageType: ''
    returnType: void
    signature: void trace_lock_free(void *lock_, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:324,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:326,1
    - Dst: cbs::lock
      Src: /src/libevent/test/regress_bufferevent.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: trace_lock_lock
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - cbs::lock
    - lu_find
    linkageType: ''
    returnType: int
    signature: int trace_lock_lock(unsigned mode, void *lock_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:335,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:337,1
    - Dst: cbs::unlock
      Src: /src/libevent/test/regress_bufferevent.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: trace_lock_unlock
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - cbs::unlock
    - TT_FAIL
    - lu_find
    linkageType: ''
    returnType: int
    signature: int trace_lock_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_free
      Src: /src/libevent/test/regress_bufferevent.c:346,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_bufferevent.c:347,1
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/test/regress_bufferevent.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 6
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: lock_unlock_free_thread_cbs
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evthread_set_lock_callbacks
    - event_base_free
    - libevent_global_shutdown
    linkageType: ''
    returnType: void
    signature: void lock_unlock_free_thread_cbs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/test/regress_bufferevent.c:361,1
    - Dst: evthread_get_lock_callbacks
      Src: /src/libevent/test/regress_bufferevent.c:361,1
    - Dst: lock_unlock_free_thread_cbs
      Src: /src/libevent/test/regress_bufferevent.c:364,1
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/test/regress_bufferevent.c:366,1
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/test/regress_bufferevent.c:368,1
    - Dst: event_init
      Src: /src/libevent/test/regress_bufferevent.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 351
    functionDepth: 7
    functionLinenumber: 351
    functionLinenumberEnd: 373
    functionName: use_lock_unlock_profiler
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - lock_unlock_free_thread_cbs
    - event_init
    - evthread_set_lock_callbacks
    - evthread_get_lock_callbacks
    - evthread_enable_lock_debugging
    - memcpy
    linkageType: ''
    returnType: int
    signature: int use_lock_unlock_profiler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock_unlock_free_thread_cbs
      Src: /src/libevent/test/regress_bufferevent.c:376,1
    - Dst: free
      Src: /src/libevent/test/regress_bufferevent.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct basic_test_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 7
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: free_lock_unlock_profiler
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - lock_unlock_free_thread_cbs
    - free
    linkageType: ''
    returnType: void
    signature: void free_lock_unlock_profiler(struct basic_test_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_lock_unlock_profiler
      Src: /src/libevent/test/regress_bufferevent.c:384,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:387,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:388,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:389,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_bufferevent.c:391,1
    - Dst: free_lock_unlock_profiler
      Src: /src/libevent/test/regress_bufferevent.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 381
    functionDepth: 8
    functionLinenumber: 381
    functionLinenumberEnd: 396
    functionName: test_bufferevent_pair_release_lock
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_abort_perror
    - use_lock_unlock_profiler
    - free_lock_unlock_profiler
    - bufferevent_free
    - bufferevent_pair_new
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_release_lock(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_bufferevent.c:406,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:407,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:410,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:412,1
    - Dst: bufferevent_read_buffer
      Src: /src/libevent/test/regress_bufferevent.c:415,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:419,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_bufferevent.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (evbuf != NULL)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/libevent/test/regress_bufferevent.c
    - condition: (len >= 10 && len <= 20)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 424
      start: 403
    functionDepth: 7
    functionLinenumber: 403
    functionLinenumberEnd: 424
    functionName: wm_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - evbuffer_new
    - evbuffer_free
    - bufferevent_read_buffer
    - evbuffer_get_length
    - assert
    linkageType: ''
    returnType: void
    signature: void wm_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:429,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:429,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:430,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:431,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (evbuffer_get_length(bev->output) <= 100)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: wm_writecb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    - assert
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void wm_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: wm_errorcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wm_errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:453,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:453,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:456,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:457,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:459,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:460,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:462,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:463,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:464,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:465,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:468,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:469,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:470,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:471,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:477,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:479,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:480,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:481,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:485,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:487,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:488,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:489,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:493,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:496,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:498,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:500,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:504,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_bufferevent.c:504,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:508,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 1
    argNames:
    - use_pair
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 442
    functionDepth: 8
    functionLinenumber: 442
    functionLinenumberEnd: 511
    functionName: test_bufferevent_watermarks_impl
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_new
    - bufferevent_disable
    - tt_int_op
    - tt_assert
    - bufferevent_enable
    - bufferevent_getwatermark
    - event_dispatch
    - bufferevent_setwatermark
    - bufferevent_write
    - event_pending
    - bufferevent_free
    - bufferevent_pair_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_watermarks_impl(int use_pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_watermarks_impl
      Src: /src/libevent/test/regress_bufferevent.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 9
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: test_bufferevent_watermarks
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_watermarks_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_watermarks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_watermarks_impl
      Src: /src/libevent/test/regress_bufferevent.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 519
    functionDepth: 9
    functionLinenumber: 519
    functionLinenumberEnd: 523
    functionName: test_bufferevent_pair_watermarks
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_watermarks_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_watermarks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_bufferevent.c:538,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:538,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:539,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:543,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:544,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (buffer[i] == 'x')
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 549
      start: 531
    functionDepth: 7
    functionLinenumber: 531
    functionLinenumberEnd: 549
    functionName: bufferevent_input_filter
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_get_length
    - assert
    - evbuffer_drain
    - evbuffer_pullup
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result bufferevent_input_filter(struct evbuffer
      *src, struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_bufferevent.c:564,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:564,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:565,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:566,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:567,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:569,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:569,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:576,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (test_ok == prev)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 584
      start: 553
    functionDepth: 8
    functionLinenumber: 553
    functionLinenumberEnd: 584
    functionName: bufferevent_output_filter
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - bufferevent_write
    - evbuffer_get_length
    - assert
    - evbuffer_drain
    - evbuffer_pullup
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result bufferevent_output_filter(struct evbuffer
      *src, struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:598,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:598,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:602,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:603,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:611,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:615,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:617,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:618,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:620,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:621,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:623,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:623,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:624,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:624,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:625,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:625,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:625,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:626,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:626,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:626,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:628,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:629,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:631,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:633,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:640,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - use_pair
    - disable
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 586
    functionDepth: 8
    functionLinenumber: 586
    functionLinenumberEnd: 644
    functionName: test_bufferevent_filters_impl
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - bufferevent_get_underlying
    - tt_assert
    - bufferevent_free
    - bufferevent_enable
    - bufferevent_getfd
    - bufferevent_filter_new
    - bufferevent_socket_new
    - tt_ptr_op
    - event_dispatch
    - bufferevent_write
    - tt_fd_op
    - bufferevent_pair_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filters_impl(int use_pair, int disable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 646
    functionDepth: 9
    functionLinenumber: 646
    functionLinenumberEnd: 647
    functionName: test_bufferevent_filters
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 648
    functionDepth: 9
    functionLinenumber: 648
    functionLinenumberEnd: 649
    functionName: test_bufferevent_pair_filters
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_filters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 650
    functionDepth: 9
    functionLinenumber: 650
    functionLinenumberEnd: 651
    functionName: test_bufferevent_filters_disable
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filters_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 652
    functionDepth: 9
    functionLinenumber: 652
    functionLinenumberEnd: 653
    functionName: test_bufferevent_pair_filters_disable
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_filters_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:659,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_bufferevent.c:659,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:660,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:661,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:661,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 656
    functionDepth: 6
    functionLinenumber: 656
    functionLinenumberEnd: 664
    functionName: sender_writecb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - bufferevent_getfd
    - evbuffer_get_length
    - TT_BLATHER
    - bufferevent_free
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void sender_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: sender_errorcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    linkageType: ''
    returnType: void
    signature: void sender_errorcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:687,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:688,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:689,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:690,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 680
    functionDepth: 8
    functionLinenumber: 680
    functionLinenumberEnd: 694
    functionName: listen_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - bufferevent_write
    - TT_BLATHER
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void listen_cb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *sa, int socklen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:703,1
    - Dst: htonl
      Src: /src/libevent/test/regress_bufferevent.c:705,1
    - Dst: socket
      Src: /src/libevent/test/regress_bufferevent.c:710,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:711,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:712,1
    - Dst: bind
      Src: /src/libevent/test/regress_bufferevent.c:712,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:713,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_bufferevent.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - localhost
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 719
    functionName: fake_listener_create
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - socket
    - getsockname
    - htonl
    - bind
    - memset
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t fake_listener_create(struct sockaddr_in *localhost)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/libevent/test/regress_bufferevent.c:726,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:727,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:731,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:731,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:732,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_bufferevent.c:737,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:738,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_bufferevent.c:740,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:742,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:743,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 748
    functionName: reader_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_read
    - bufferevent_enable
    - bufferevent_getfd
    - event_base_loopexit
    - tt_str_op
    - TT_FAIL
    - TT_BLATHER
    - perror
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void reader_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:753,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 756
    functionName: reader_eventcb_simple
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_getfd
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void reader_eventcb_simple(struct bufferevent *bev, short what, void
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:761,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: reader_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_getfd
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void reader_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:778,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:781,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:784,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_bufferevent.c:789,1
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/test/regress_bufferevent.c:792,1
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:797,1
    - Dst: htonl
      Src: /src/libevent/test/regress_bufferevent.c:800,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_bufferevent.c:803,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:806,1
    - Dst: regress_get_listener_addr
      Src: /src/libevent/test/regress_bufferevent.c:810,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_bufferevent.c:811,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:814,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/test/regress_bufferevent.c:814,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:815,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:816,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:817,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:818,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:819,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:820,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:822,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:823,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:825,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:825,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:826,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:826,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:828,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:830,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:831,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_bufferevent.c:834,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:837,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 765
    functionDepth: 6
    functionLinenumber: 765
    functionLinenumberEnd: 841
    functionName: test_bufferevent_connect
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evconnlistener_free
    - strstr
    - htonl
    - event_get_win32_extension_fns_
    - evconnlistener_enable
    - evconnlistener_new_bind
    - bufferevent_enable
    - tt_want
    - tt_assert
    - bufferevent_socket_new
    - bufferevent_socket_connect
    - bufferevent_free
    - memset
    - bufferevent_setcb
    - regress_get_listener_addr
    - tt_abort_perror
    - tt_int_op
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_bufferevent.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 851
    functionName: close_socket_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void close_socket_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fake_listener_create
      Src: /src/libevent/test/regress_bufferevent.c:867,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:873,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:875,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:876,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:877,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:879,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:880,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:881,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:884,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:887,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:889,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:890,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_bufferevent.c:894,1
    - Dst: event_add
      Src: /src/libevent/test/regress_bufferevent.c:896,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:898,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:899,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:900,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_bufferevent.c:904,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:906,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_bufferevent.c:908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 853
    functionDepth: 6
    functionLinenumber: 853
    functionLinenumberEnd: 909
    functionName: test_bufferevent_connect_fail_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - fake_listener_create
    - evconnlistener_free
    - bufferevent_free
    - tt_assert
    - bufferevent_enable
    - bufferevent_socket_new
    - evutil_closesocket
    - evtimer_assign
    - bufferevent_socket_connect
    - event_add
    - tt_int_op
    - tt_want
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect_fail_eventcb(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:919,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress_bufferevent.c:920,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress_bufferevent.c:920,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:921,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/test/regress_bufferevent.c:922,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:925,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 929
    functionName: want_fail_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_socket_error_to_string
    - bufferevent_getfd
    - event_base_loopexit
    - EV_SOCK_ARG
    - TT_FAIL
    - evutil_socket_geterror
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void want_fail_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fake_listener_create
      Src: /src/libevent/test/regress_bufferevent.c:946,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:947,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:949,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:950,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:952,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:955,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_bufferevent.c:959,1
    - Dst: event_add
      Src: /src/libevent/test/regress_bufferevent.c:961,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:964,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:966,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_bufferevent.c:970,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:973,1
    - Dst: event_del
      Src: /src/libevent/test/regress_bufferevent.c:976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 931
    functionDepth: 6
    functionLinenumber: 931
    functionLinenumberEnd: 977
    functionName: test_bufferevent_connect_fail
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - fake_listener_create
    - bufferevent_free
    - tt_assert
    - bufferevent_socket_new
    - evutil_closesocket
    - evtimer_assign
    - event_del
    - bufferevent_socket_connect
    - event_add
    - tt_int_op
    - tt_want
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect_fail(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 994
    functionName: bev_timeout_read_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void bev_timeout_read_cb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1000
    functionName: bev_timeout_write_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void bev_timeout_write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:1009,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1017
    functionName: bev_timeout_event_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void bev_timeout_event_cb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1029,1
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1030,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1032,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1034,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1039,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:1039,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1043,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1044,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1046,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1047,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1051,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1053,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1055,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1056,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:1062,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:1065,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1069,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/test/regress_bufferevent.c:1071,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:1072,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1073,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1076,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/test/regress_bufferevent.c:1081,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1082,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:1087,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1088,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1093,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1094,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1095,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1096,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1097,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1098,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_bufferevent.c:1100,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_bufferevent.c:1101,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1107,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1108,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1109,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1110,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1115,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1019
    functionDepth: 8
    functionLinenumber: 1019
    functionLinenumberEnd: 1118
    functionName: test_bufferevent_timeouts
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - strstr
    - bufferevent_filter_new
    - bufferevent_write
    - bufferevent_enable
    - tt_want
    - tt_assert_timeval_empty
    - evutil_gettimeofday
    - tt_assert
    - bufferevent_set_timeouts
    - bufferevent_socket_new
    - bufferevent_free
    - test_timeval_diff_eq
    - memset
    - bufferevent_setcb
    - bufferevent_disable
    - event_base_loopexit
    - bufferevent_pair_new
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_timeouts(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1107
    functionName: tt_assert_timeval_empty
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_timeval_empty(tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - ctx
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: trigger_failure_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    linkageType: ''
    returnType: void
    signature: void trigger_failure_cb(evutil_socket_t fd, short what, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:1131,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:1132,1
    - Dst: reader_eventcb
      Src: /src/libevent/test/regress_bufferevent.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1126
    functionDepth: 7
    functionLinenumber: 1126
    functionLinenumberEnd: 1136
    functionName: trigger_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - reader_eventcb
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void trigger_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:1141,1
    - Dst: bufferevent_trigger_event
      Src: /src/libevent/test/regress_bufferevent.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1138
    functionDepth: 3
    functionLinenumber: 1138
    functionLinenumberEnd: 1144
    functionName: trigger_readcb_triggered
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_trigger_event
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void trigger_readcb_triggered(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:1154,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:1154,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1157,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1159,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1160,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_bufferevent.c:1160,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1162,1
    - Dst: bufferevent_trigger
      Src: /src/libevent/test/regress_bufferevent.c:1163,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1165,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_bufferevent.c:1174,1
    - Dst: bufferevent_trigger
      Src: /src/libevent/test/regress_bufferevent.c:1176,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1178,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1183
    functionName: trigger_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - bufferevent_getwatermark
    - bufferevent_getfd
    - bufferevent_get_input
    - bufferevent_setwatermark
    - evbuffer_get_length
    - TT_BLATHER
    - bufferevent_trigger
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void trigger_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1199,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1204,1
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1209,1
    - Dst: htonl
      Src: /src/libevent/test/regress_bufferevent.c:1212,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_bufferevent.c:1215,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1218,1
    - Dst: regress_get_listener_addr
      Src: /src/libevent/test/regress_bufferevent.c:1222,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_bufferevent.c:1223,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1226,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/test/regress_bufferevent.c:1226,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1227,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1228,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1229,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1231,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1233,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:1233,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1235,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1237,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_bufferevent.c:1240,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1185
    functionDepth: 6
    functionLinenumber: 1185
    functionLinenumberEnd: 1244
    functionName: test_bufferevent_trigger
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_abort_perror
    - evconnlistener_enable
    - event_base_dispatch
    - bufferevent_setcb
    - tt_assert
    - evconnlistener_free
    - evconnlistener_new_bind
    - strstr
    - bufferevent_enable
    - htonl
    - bufferevent_socket_new
    - bufferevent_socket_connect
    - tt_want
    - bufferevent_free
    - tt_int_op
    - memset
    - regress_get_listener_addr
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_trigger(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1252,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1253,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1254,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1255,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1259,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1246
    functionDepth: 6
    functionLinenumber: 1246
    functionLinenumberEnd: 1262
    functionName: test_bufferevent_socket_filter_inactive
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - bufferevent_socket_new
    - bufferevent_filter_new
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_socket_filter_inactive(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1269
    functionName: pair_flush_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pair_flush_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1280,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:1280,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1283,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1283,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1284,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1284,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1286,1
    - Dst: bufferevent_flush
      Src: /src/libevent/test/regress_bufferevent.c:1288,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_bufferevent.c:1290,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1292,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1296,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1271
    functionDepth: 6
    functionLinenumber: 1271
    functionLinenumberEnd: 1299
    functionName: test_bufferevent_pair_flush
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_flush
    - tt_assert
    - bufferevent_enable
    - bufferevent_free
    - event_base_loop
    - bufferevent_pair_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_bufferevent.c:1310,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1311,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1314
    functionName: bufferevent_filter_data_stuck_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - evbuffer_get_length
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void bufferevent_filter_data_stuck_readcb(struct bufferevent *bev,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/regress_bufferevent.c:1330,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:1331,1
    - Dst: free
      Src: /src/libevent/test/regress_bufferevent.c:1332,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1337,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1342,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_bufferevent.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - src
    - dst
    - dst_limit
    - mode
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1319
    functionDepth: 7
    functionLinenumber: 1319
    functionLinenumberEnd: 1346
    functionName: bufferevent_filter_data_stuck_inputcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - free
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_get_length
    - tt_int_op
    - calloc
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result bufferevent_filter_data_stuck_inputcb(\n
      \   struct evbuffer *src, struct evbuffer *dst, ev_ssize_t dst_limit,\n    enum
      bufferevent_flush_mode mode, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1362,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1365,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:1365,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1367,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1368,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1370,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1372,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1379,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1385,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1385,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1387,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1389,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:1389,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1391,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1393,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1396,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1348
    functionDepth: 8
    functionLinenumber: 1348
    functionLinenumberEnd: 1399
    functionName: test_bufferevent_filter_data_stuck
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_int_op
    - tt_assert
    - bufferevent_enable
    - bufferevent_filter_new
    - bufferevent_setwatermark
    - bufferevent_write
    - bufferevent_free
    - bufferevent_pair_new
    - memset
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filter_data_stuck(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_bufferevent.c:1409,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1410,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1410,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1410,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_bufferevent.c:1412,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1412,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1413,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1413,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1414,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1414,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/test/regress_bufferevent.c:1416,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_bufferevent.c:1417,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1418,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1401
    functionDepth: 6
    functionLinenumber: 1401
    functionLinenumberEnd: 1421
    functionName: read_failed_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_read
    - evbuffer_freeze
    - event_base_loopexit
    - bufferevent_get_input
    - strlen
    - evbuffer_get_length
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void read_failed_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1430,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1432,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1433,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1434,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: send
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: write
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1442,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1423
    functionDepth: 6
    functionLinenumber: 1423
    functionLinenumberEnd: 1446
    functionName: test_bufferevent_read_failed
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - write
    - event_base_dispatch
    - tt_assert
    - bufferevent_enable
    - bufferevent_socket_new
    - strlen
    - bufferevent_free
    - tt_int_op
    - send
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_read_failed(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/bench.c:83,1
    - Dst: send
      Src: /src/libevent/test/bench.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 97
    functionName: read_cb
    functionSourceFile: /src/libevent/test/bench.c
    functionUses: 0
    functionsReached:
    - send
    - recv
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short which, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/libevent/test/bench.c:107,1
    - Dst: event_del
      Src: /src/libevent/test/bench.c:108,1
    - Dst: event_assign
      Src: /src/libevent/test/bench.c:109,1
    - Dst: event_add
      Src: /src/libevent/test/bench.c:110,1
    - Dst: event_base_loop
      Src: /src/libevent/test/bench.c:113,1
    - Dst: send
      Src: /src/libevent/test/bench.c:119,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench.c:125,1
    - Dst: event_base_loop
      Src: /src/libevent/test/bench.c:127,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench.c:130,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:133,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench.c:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 140
    functionName: run_once
    functionSourceFile: /src/libevent/test/bench.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - fprintf
    - event_assign
    - event_initialized
    - evutil_timersub
    - event_del
    - event_add
    - event_base_loop
    - send
    linkageType: ''
    returnType: struct timeval
    signature: 'struct timeval *

      run_once(void)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test/bench.c:157,1
    - Dst: getopt
      Src: /src/libevent/test/bench.c:162,1
    - Dst: atoi
      Src: /src/libevent/test/bench.c:165,1
    - Dst: atoi
      Src: /src/libevent/test/bench.c:168,1
    - Dst: atoi
      Src: /src/libevent/test/bench.c:171,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/bench.c:177,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:178,1
    - Dst: event_get_version
      Src: /src/libevent/test/bench.c:179,1
    - Dst: printf
      Src: /src/libevent/test/bench.c:181,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:182,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:184,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:185,1
    - Dst: setrlimit
      Src: /src/libevent/test/bench.c:191,1
    - Dst: perror
      Src: /src/libevent/test/bench.c:192,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:193,1
    - Dst: calloc
      Src: /src/libevent/test/bench.c:197,1
    - Dst: calloc
      Src: /src/libevent/test/bench.c:198,1
    - Dst: perror
      Src: /src/libevent/test/bench.c:200,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:201,1
    - Dst: event_config_new
      Src: /src/libevent/test/bench.c:205,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/bench.c:206,1
    - Dst: strcmp
      Src: /src/libevent/test/bench.c:208,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/bench.c:209,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/bench.c:210,1
    - Dst: event_config_free
      Src: /src/libevent/test/bench.c:211,1
    - Dst: event_base_new
      Src: /src/libevent/test/bench.c:213,1
    - Dst: pipe
      Src: /src/libevent/test/bench.c:217,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/bench.c:219,1
    - Dst: perror
      Src: /src/libevent/test/bench.c:221,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:222,1
    - Dst: run_once
      Src: /src/libevent/test/bench.c:227,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:229,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:230,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:234,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 235
    functionName: main
    functionSourceFile: /src/libevent/test/bench.c
    functionUses: 0
    functionsReached:
    - atoi
    - pipe
    - exit
    - event_get_version
    - event_config_free
    - WSAStartup
    - event_base_new
    - printf
    - run_once
    - event_base_new_with_config
    - perror
    - evutil_socketpair
    - calloc
    - event_get_supported_methods
    - fprintf
    - setrlimit
    - getopt
    - event_config_avoid_method
    - event_config_new
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:100,1
    - Dst: deflateEnd
      Src: /src/libevent/test/regress_zlib.c:100,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_zlib.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts:
    - condition: (deflateEnd(p) == Z_OK)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: zlib_deflate_free
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - deflateEnd
    - assert
    - mm_free
    linkageType: ''
    returnType: void
    signature: void zlib_deflate_free(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:109,1
    - Dst: inflateEnd
      Src: /src/libevent/test/regress_zlib.c:109,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_zlib.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts:
    - condition: (inflateEnd(p) == Z_OK)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: zlib_inflate_free
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - assert
    - inflateEnd
    - mm_free
    linkageType: ''
    returnType: void
    signature: void zlib_inflate_free(void *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: getstate
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getstate(enum bufferevent_flush_mode state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_zlib.c:145,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_zlib.c:154,1
    - Dst: inflate
      Src: /src/libevent/test/regress_zlib.c:159,1
    - Dst: getstate
      Src: /src/libevent/test/regress_zlib.c:159,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_zlib.c:165,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_zlib.c:167,1
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:176,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (res == Z_OK || res == Z_STREAM_END)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 184
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 184
    functionName: zlib_input_filter
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - evbuffer_peek
    - evbuffer_commit_space
    - inflate
    - getstate
    - assert
    - evbuffer_get_length
    - evbuffer_drain
    - evbuffer_reserve_space
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result zlib_input_filter(struct evbuffer *src,
      struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode state,
      void *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_zlib.c:199,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_zlib.c:208,1
    - Dst: deflate
      Src: /src/libevent/test/regress_zlib.c:213,1
    - Dst: getstate
      Src: /src/libevent/test/regress_zlib.c:213,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_zlib.c:219,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_zlib.c:221,1
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:230,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (res == Z_OK || res == Z_STREAM_END)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 238
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 238
    functionName: zlib_output_filter
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - evbuffer_peek
    - evbuffer_commit_space
    - deflate
    - getstate
    - assert
    - evbuffer_get_length
    - evbuffer_drain
    - evbuffer_reserve_space
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result zlib_output_filter(struct evbuffer
      *src, struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:247,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_zlib.c:247,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_zlib.c:248,1
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:249,1
    - Dst: bufferevent_read_buffer
      Src: /src/libevent/test/regress_zlib.c:252,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_zlib.c:254,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:256,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_zlib.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (evbuf != NULL)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 262
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 262
    functionName: readcb
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 3
    functionsReached:
    - bufferevent_disable
    - evbuffer_new
    - bufferevent_get_input
    - evbuffer_free
    - bufferevent_read_buffer
    - evbuffer_get_length
    - assert
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:267,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_zlib.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: writecb
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 3
    functionsReached:
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void writecb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: errorcb
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_zlib.c:291,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_zlib.c:292,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_zlib.c:295,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_zlib.c:296,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_zlib.c:298,1
    - Dst: deflateInit
      Src: /src/libevent/test/regress_zlib.c:299,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_zlib.c:300,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_zlib.c:301,1
    - Dst: inflateInit
      Src: /src/libevent/test/regress_zlib.c:302,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_zlib.c:303,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_zlib.c:306,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_zlib.c:308,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_zlib.c:310,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_zlib.c:311,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_zlib.c:312,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_zlib.c:313,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_zlib.c:315,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_zlib.c:316,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_zlib.c:318,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_zlib.c:324,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_zlib.c:325,1
    - Dst: bufferevent_flush
      Src: /src/libevent/test/regress_zlib.c:328,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_zlib.c:330,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:332,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:333,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:334,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:335,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:336,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_zlib.c:341,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_zlib.c:343,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_zlib.c:346,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_zlib.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 278
    functionDepth: 8
    functionLinenumber: 278
    functionLinenumberEnd: 349
    functionName: test_bufferevent_zlib
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - tt_abort_perror
    - inflateInit
    - bufferevent_disable
    - mm_calloc
    - bufferevent_flush
    - bufferevent_free
    - bufferevent_enable
    - bufferevent_socket_new
    - bufferevent_filter_new
    - tt_ptr_op
    - event_dispatch
    - evutil_closesocket
    - deflateInit
    - bufferevent_write
    - evutil_socketpair
    - tt_int_op
    - tt_want
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_zlib(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/test-fdleak.c:70,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/test-fdleak.c:71,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/test-fdleak.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: my_perror
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - evutil_socket_error_to_string
    - fprintf
    - EVUTIL_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: void my_perror(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-fdleak.c:84,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/test-fdleak.c:84,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/test-fdleak.c:86,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/test-fdleak.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: server_read_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - bufferevent_read
    - bufferevent_write
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void server_read_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:96,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:97,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-fdleak.c:99,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/test-fdleak.c:101,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/test-fdleak.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 6
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: server_event_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_base
    - my_perror
    - exit
    - bufferevent_free
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void server_event_cb(struct bufferevent *bev, short events, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/test-fdleak.c:111,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-fdleak.c:112,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-fdleak.c:114,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-fdleak.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - listener
    - sock
    - addr
    - len
    - ptr
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 6
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: listener_accept_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - evconnlistener_get_base
    - bufferevent_socket_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void listener_accept_cb(struct evconnlistener *listener, evutil_socket_t
      sock,\n                   struct sockaddr *addr, int len, void *ptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/test-fdleak.c:128,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:130,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:131,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/test-fdleak.c:134,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:138,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:139,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/test-fdleak.c:141,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:143,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:144,1
    - Dst: getsockname
      Src: /src/libevent/test/test-fdleak.c:146,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:147,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:148,1
    - Dst: memcpy
      Src: /src/libevent/test/test-fdleak.c:150,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:152,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:153,1
    - Dst: start_client
      Src: /src/libevent/test/test-fdleak.c:156,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-fdleak.c:158,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/test-fdleak.c:160,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-fdleak.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 162
    functionName: start_loop
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evconnlistener_free
    - start_client
    - evconnlistener_new_bind
    - getsockname
    - event_base_free
    - exit
    - my_perror
    - puts
    - evconnlistener_get_fd
    - event_base_new
    - memcpy
    linkageType: ''
    returnType: void
    signature: void start_loop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/test-fdleak.c:176,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/test-fdleak.c:178,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:180,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:181,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-fdleak.c:183,1
    - Dst: start_client
      Src: /src/libevent/test/test-fdleak.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: client_read_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_read
    - start_client
    - bufferevent_get_base
    - exit
    - puts
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void client_read_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_write
      Src: /src/libevent/test/test-fdleak.c:197,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:199,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:200,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-fdleak.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 8
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: client_event_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - exit
    - bufferevent_write
    - puts
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void client_event_cb(struct bufferevent *bev, short events, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-fdleak.c:210,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-fdleak.c:212,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/test-fdleak.c:214,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:216,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-fdleak.c:217,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: start_client
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 2
    functionsReached:
    - bufferevent_socket_new
    - my_perror
    - exit
    - bufferevent_socket_connect
    - bufferevent_free
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void start_client(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setrlimit
      Src: /src/libevent/test/test-fdleak.c:230,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:231,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:232,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-fdleak.c:238,1
    - Dst: memset
      Src: /src/libevent/test/test-fdleak.c:242,1
    - Dst: htonl
      Src: /src/libevent/test/test-fdleak.c:244,1
    - Dst: start_loop
      Src: /src/libevent/test/test-fdleak.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 222
    functionDepth: 7
    functionLinenumber: 222
    functionLinenumberEnd: 250
    functionName: main
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - setrlimit
    - start_loop
    - htonl
    - my_perror
    - exit
    - WSAStartup
    - memset
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-init.c:55,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-init.c:57,1
    - Dst: event_init
      Src: /src/libevent/test/test-init.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/libevent/test/test-init.c
    functionUses: 0
    functionsReached:
    - MAKEWORD
    - event_init
    - WSAStartup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - prefix
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: TT_DECLARE
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_DECLARE(prefix, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: TT_GRIPE
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_GRIPE(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: TT_BLATHER
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_BLATHER(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: TT_DIE
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_DIE(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: TT_FAIL
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_FAIL(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: tt_abort_printf
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort_printf(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: tt_abort_perror
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort_perror(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: tt_abort_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort_msg(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: tt_abort
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: tt_failprint_f
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_failprint_f(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: tt_fail_perror
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fail_perror(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: tt_fail_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fail_msg(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: tt_fail
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: tt_skip
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_skip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - msg
    - ','
    - fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: tt_want_
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_(b, msg, fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: tt_want_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_msg(b, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: tt_assert_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_msg(b, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: tt_want
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: tt_assert
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - str_test
    - ','
    - type
    - ','
    - test
    - ','
    - printf_type
    - ','
    - printf_fmt
    - ','
    - setup_block
    - ','
    - cleanup_block
    - ','
    - die_on_fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 142
    functionName: tt_assert_test_fmt_type
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "tt_assert_test_fmt_type(a,b,str_test,type,test,printf_type,printf_fmt,
      \\\n    setup_block,cleanup_block,die_on_fail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - str_test
    - ','
    - type
    - ','
    - test
    - ','
    - fmt
    - ','
    - die_on_fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: tt_assert_test_type
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_test_type(a,b,str_test,type,test,fmt,die_on_fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - str_test
    - ','
    - type
    - ','
    - test
    - ','
    - fmt
    - ','
    - die_on_fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: tt_assert_test_type_opt
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_test_type_opt(a,b,str_test,type,test,fmt,die_on_fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - ','
    - type
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: tt_assert_op_type
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_op_type(a,op,b,type,fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: tt_int_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_int_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: tt_fd_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fd_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: tt_uint_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_uint_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: tt_ptr_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_ptr_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: tt_nstr_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_nstr_op(n,a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: tt_str_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_str_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - expr1
    - ','
    - op
    - ','
    - expr2
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: tt_mem_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_mem_op(expr1, op, expr2, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: tt_want_int_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_int_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: tt_want_uint_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_uint_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: tt_want_ptr_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_ptr_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: tt_want_str_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_str_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_iocp.c:64,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_iocp.c:65,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:67,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: count_init
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - EVTHREAD_ALLOC_COND
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void count_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_iocp.c:77,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_iocp.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: count_free
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_FREE_LOCK
    - EVTHREAD_FREE_COND
    linkageType: ''
    returnType: void
    signature: void count_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:84,1
    - Dst: EVTHREAD_COND_BROADCAST
      Src: /src/libevent/test/regress_iocp.c:86,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: count_incr
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 8
    functionsReached:
    - EVLOCK_LOCK
    - EVTHREAD_COND_BROADCAST
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void count_incr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:97,1
    - Dst: GetTickCount
      Src: /src/libevent/test/regress_iocp.c:101,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_iocp.c:102,1
    - Dst: GetTickCount
      Src: /src/libevent/test/regress_iocp.c:103,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - i
    - ms
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: count_wait_for
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - GetTickCount
    - EVTHREAD_COND_WAIT_TIMED
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: int
    signature: int count_wait_for(int i, int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/test/regress_iocp.c:125,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:127,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:133,1
    - Dst: count_incr
      Src: /src/libevent/test/regress_iocp.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - o
    - key
    - n
    - ok
    argTypes:
    - struct event_overlapped*
    - uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: dummy_cb
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVUTIL_UPCAST
    - EVLOCK_UNLOCK
    - count_incr
    linkageType: ''
    returnType: void
    signature: void dummy_cb(struct event_overlapped *o, uintptr_t key, ev_ssize_t
      n, int ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:143,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - o
    - key
    - n
    argTypes:
    - struct dummy_overlapped*
    - uintptr_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: pair_is_in
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: int
    signature: int pair_is_in(struct dummy_overlapped *o, uintptr_t key, ev_ssize_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_iocp.c:160,1
    - Dst: memset
      Src: /src/libevent/test/regress_iocp.c:161,1
    - Dst: count_init
      Src: /src/libevent/test/regress_iocp.c:163,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_iocp.c:164,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_iocp.c:165,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:167,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:168,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:170,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:171,1
    - Dst: event_iocp_port_launch_
      Src: /src/libevent/test/regress_iocp.c:173,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:174,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:176,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:176,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:177,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:177,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:179,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:179,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:180,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:180,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:182,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:182,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:183,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:183,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:185,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:185,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:186,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:186,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:188,1
    - Dst: count_wait_for
      Src: /src/libevent/test/regress_iocp.c:188,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:190,1
    - Dst: event_iocp_shutdown_
      Src: /src/libevent/test/regress_iocp.c:190,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:192,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:193,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:195,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:195,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:196,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:196,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:197,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:197,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:198,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:198,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:200,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:200,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:201,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:201,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:202,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:202,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:203,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:203,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_iocp.c:206,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_iocp.c:207,1
    - Dst: count_free
      Src: /src/libevent/test/regress_iocp.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 209
    functionName: test_iocp_port
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - event_overlapped_init_
    - event_iocp_port_launch_
    - count_free
    - tt_assert
    - count_init
    - event_iocp_activate_overlapped_
    - pair_is_in
    - event_iocp_shutdown_
    - EVTHREAD_FREE_LOCK
    - tt_want
    - EVTHREAD_ALLOC_LOCK
    - tt_int_op
    - memset
    - count_wait_for
    linkageType: ''
    returnType: void
    signature: void test_iocp_port(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:217,1
    - Dst: evbuffer_commit_read_
      Src: /src/libevent/test/regress_iocp.c:218,1
    - Dst: count_incr
      Src: /src/libevent/test/regress_iocp.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: read_complete
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - evbuffer_commit_read_
    - count_incr
    - tt_assert
    linkageType: ''
    returnType: void
    signature: "void read_complete(struct event_overlapped *eo, uintptr_t key,\n    ev_ssize_t
      nbytes, int ok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:228,1
    - Dst: evbuffer_commit_write_
      Src: /src/libevent/test/regress_iocp.c:229,1
    - Dst: count_incr
      Src: /src/libevent/test/regress_iocp.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: write_complete
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - count_incr
    - evbuffer_commit_write_
    - tt_assert
    linkageType: ''
    returnType: void
    signature: "void write_complete(struct event_overlapped *eo, uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count_init
      Src: /src/libevent/test/regress_iocp.c:246,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:247,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:248,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/test/regress_iocp.c:253,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/test/regress_iocp.c:254,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/test/regress_iocp.c:255,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/test/regress_iocp.c:256,1
    - Dst: event_iocp_port_launch_
      Src: /src/libevent/test/regress_iocp.c:258,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:259,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:260,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:261,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:263,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/test/regress_iocp.c:263,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:264,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/test/regress_iocp.c:264,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_iocp.c:267,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_iocp.c:269,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:270,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_iocp.c:271,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:272,1
    - Dst: evbuffer_launch_read_
      Src: /src/libevent/test/regress_iocp.c:272,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_iocp.c:273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:274,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_iocp.c:274,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:276,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:277,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_iocp.c:277,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:278,1
    - Dst: evbuffer_launch_write_
      Src: /src/libevent/test/regress_iocp.c:278,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:280,1
    - Dst: count_wait_for
      Src: /src/libevent/test/regress_iocp.c:280,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:282,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_iocp.c:282,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:286,1
    - Dst: event_iocp_shutdown_
      Src: /src/libevent/test/regress_iocp.c:286,1
    - Dst: count_free
      Src: /src/libevent/test/regress_iocp.c:288,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_iocp.c:289,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_iocp.c:290,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_iocp.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 235
    functionDepth: 7
    functionLinenumber: 235
    functionLinenumberEnd: 292
    functionName: test_iocp_evbuffer
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_buffer
    - evbuffer_free
    - count_free
    - evbuffer_launch_read_
    - event_overlapped_init_
    - evbuffer_add
    - event_iocp_shutdown_
    - tt_want
    - event_iocp_port_launch_
    - event_iocp_port_associate_
    - tt_assert
    - evbuffer_new
    - count_init
    - evbuffer_launch_write_
    - evbuffer_get_length
    - evbuffer_overlapped_new_
    - tt_int_op
    - evbuffer_enable_locking
    - count_wait_for
    linkageType: ''
    returnType: void
    signature: void test_iocp_evbuffer(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_iocp.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: async_readcb
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void async_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_start_iocp_
      Src: /src/libevent/test/regress_iocp.c:313,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/test/regress_iocp.c:314,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:315,1
    - Dst: bufferevent_async_new_
      Src: /src/libevent/test/regress_iocp.c:317,1
    - Dst: bufferevent_async_new_
      Src: /src/libevent/test/regress_iocp.c:319,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:321,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:322,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_iocp.c:324,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_iocp.c:325,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_iocp.c:326,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_iocp.c:328,1
    - Dst: strlen
      Src: /src/libevent/test/regress_iocp.c:328,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_iocp.c:330,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:332,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_iocp.c:333,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_iocp.c:335,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_iocp.c:338,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_iocp.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 304
    functionDepth: 8
    functionLinenumber: 304
    functionLinenumberEnd: 340
    functionName: test_iocp_bufferevent_async
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - bufferevent_read
    - event_base_dispatch
    - tt_assert
    - bufferevent_enable
    - event_base_start_iocp_
    - bufferevent_write
    - strlen
    - tt_str_op
    - bufferevent_async_new_
    - event_base_get_iocp_
    - bufferevent_free
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void test_iocp_bufferevent_async(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:51,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:57,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:58,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:59,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress_watch.c:65,1
    - Dst: evwatch_base
      Src: /src/libevent/test/regress_watch.c:65,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:66,1
    - Dst: evwatch_prepare_get_timeout
      Src: /src/libevent/test/regress_watch.c:66,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:69,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 74
    functionName: prepare_callback_1
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - evwatch_prepare_get_timeout
    - tt_ptr_op
    - evwatch_base
    - event_base_gettimeofday_cached
    linkageType: ''
    returnType: void
    signature: void prepare_callback_1(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:80,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:86,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:87,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: prepare_callback_2
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void prepare_callback_2(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:97,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:102,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress_watch.c:106,1
    - Dst: evwatch_base
      Src: /src/libevent/test/regress_watch.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_check_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: check_callback_1
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - event_base_gettimeofday_cached
    - tt_ptr_op
    - evwatch_base
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void check_callback_1(struct evwatch *watcher, const struct evwatch_check_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:115,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_check_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: check_callback_2
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void check_callback_2(struct evwatch *watcher, const struct evwatch_check_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: timeout_callback
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 1
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void timeout_callback(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:157,1
    - Dst: evwatch_check_new
      Src: /src/libevent/test/regress_watch.c:158,1
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:159,1
    - Dst: evwatch_check_new
      Src: /src/libevent/test/regress_watch.c:160,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_watch.c:166,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_watch.c:167,1
    - Dst: evwatch_free
      Src: /src/libevent/test/regress_watch.c:173,1
    - Dst: evwatch_free
      Src: /src/libevent/test/regress_watch.c:174,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_watch.c:175,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_watch.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: test_callback_ordering
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - evwatch_free
    - event_base_dispatch
    - event_base_once
    - evwatch_prepare_new
    - evwatch_check_new
    linkageType: ''
    returnType: void
    signature: void test_callback_ordering(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:184,1
    - Dst: evwatch_prepare_get_timeout
      Src: /src/libevent/test/regress_watch.c:184,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:185,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: prepare_callback_3
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - evwatch_prepare_get_timeout
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void prepare_callback_3(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:201,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_watch.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: test_timeout_unavailable
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - evwatch_prepare_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_timeout_unavailable(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: bad_malloc
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      bad_malloc(size_t sz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_watch.c:223,1
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:224,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:225,1
    - Dst: evwatch_check_new
      Src: /src/libevent/test/regress_watch.c:227,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:228,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_watch.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 233
    functionName: test_malloc_failure
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - evwatch_prepare_new
    - tt_ptr_op
    - evwatch_check_new
    - event_set_mem_functions
    linkageType: ''
    returnType: void
    signature: void test_malloc_failure(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: trigger_timer
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void trigger_timer(evutil_socket_t fd, short events, void * arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/regress_timer_timeout.c:30,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress_timer_timeout.c:31,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress_timer_timeout.c:32,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress_timer_timeout.c:33,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_timer_timeout.c:35,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_timer_timeout.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - test
    - flags
    argTypes:
    - EventTimeoutTest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: init_test
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - event_config_free
    - evtimer_new
    - event_base_new_with_config
    - event_config_set_flag
    - event_config_new
    - event_base_new
    linkageType: ''
    returnType: void
    signature: void init_test(EventTimeoutTest *test, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/test/regress_timer_timeout.c:41,1
    - Dst: event_free
      Src: /src/libevent/test/regress_timer_timeout.c:42,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_timer_timeout.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - test
    argTypes:
    - EventTimeoutTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: cleanup_test
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - event_free
    - event_del
    linkageType: ''
    returnType: void
    signature: void cleanup_test(EventTimeoutTest *test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_timer_timeout.c:49,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress_timer_timeout.c:50,1
    - Dst: perror
      Src: /src/libevent/test/regress_timer_timeout.c:52,1
    - Dst: exit
      Src: /src/libevent/test/regress_timer_timeout.c:53,1
    - Dst: evutil_timeradd
      Src: /src/libevent/test/regress_timer_timeout.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - test
    - delay
    argTypes:
    - EventTimeoutTest*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: set_timer_tv
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - exit
    - evutil_timeradd
    - perror
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void set_timer_tv(EventTimeoutTest *test, const struct timeval* delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_timer_tv
      Src: /src/libevent/test/regress_timer_timeout.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - test
    - delay_us
    argTypes:
    - EventTimeoutTest*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: set_timer
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - set_timer_tv
    linkageType: ''
    returnType: void
    signature: void set_timer(EventTimeoutTest *test, const long delay_us)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_pending
      Src: /src/libevent/test/regress_timer_timeout.c:68,1
    - Dst: perror
      Src: /src/libevent/test/regress_timer_timeout.c:70,1
    - Dst: exit
      Src: /src/libevent/test/regress_timer_timeout.c:71,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_timer_timeout.c:76,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_timer_timeout.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - test
    argTypes:
    - EventTimeoutTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: remaining
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - evutil_timersub
    - exit
    - evtimer_pending
    - perror
    linkageType: ''
    returnType: long
    signature: long remaining(EventTimeoutTest *test)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_test
      Src: /src/libevent/test/regress_timer_timeout.c:89,1
    - Dst: set_timer
      Src: /src/libevent/test/regress_timer_timeout.c:91,1
    - Dst: remaining
      Src: /src/libevent/test/regress_timer_timeout.c:92,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_timer_timeout.c:98,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress_timer_timeout.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: test_with_flags
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - remaining
    - set_timer
    - cleanup_test
    - init_test
    - evutil_usleep_
    linkageType: ''
    returnType: int
    signature: int test_with_flags(int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_with_flags
      Src: /src/libevent/test/regress_timer_timeout.c:111,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_timer_timeout.c:112,1
    - Dst: strstr
      Src: /src/libevent/test/regress_timer_timeout.c:113,1
    - Dst: test_with_flags
      Src: /src/libevent/test/regress_timer_timeout.c:114,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_timer_timeout.c:115,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_timer_timeout.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: timer_timeout_test
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - test_with_flags
    - strstr
    - tt_int_op
    - tt_fail_msg
    linkageType: ''
    returnType: void
    signature: void timer_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: write
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write(fd,buf,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: read
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 79
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read(fd,buf,len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:112,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:116,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: simple_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - exit
    - event_add
    - read
    linkageType: ''
    returnType: void
    signature: void simple_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:132,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:135,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress.c:142,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress.c:147,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress.c:151,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:155,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - event
    - data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 157
    functionName: basic_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_fail_msg
    - tt_fail_perror
    - event_base_loopexit
    - event_del
    - read
    linkageType: ''
    returnType: void
    signature: void basic_read_cb(evutil_socket_t fd, short event, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: dummy_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dummy_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:169,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: simple_write_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - strlen
    linkageType: ''
    returnType: void
    signature: void simple_write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:186,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:188,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:190,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:197,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:199,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:204,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 207
    functionName: multiple_write_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - fprintf
    - exit
    - event_del
    - event_add
    - shutdown
    linkageType: ''
    returnType: void
    signature: void multiple_write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:215,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:217,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:220,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:226,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: multiple_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    - event_del
    - read
    - event_add
    linkageType: ''
    returnType: void
    signature: void multiple_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:249,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:251,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:256,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: combined_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - event_add
    - read
    linkageType: ''
    returnType: void
    signature: void combined_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:271,1
    - Dst: write
      Src: /src/libevent/test/regress.c:273,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:275,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:277,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:282,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 284
    functionName: combined_write_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - fprintf
    - exit
    - event_add
    - shutdown
    - memset
    linkageType: ''
    returnType: void
    signature: void combined_write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: setup_test
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setup_test(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: cleanup_test
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:301,1
    - Dst: write
      Src: /src/libevent/test/regress.c:303,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:303,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:304,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:307,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:309,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:310,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:311,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:312,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 295
    functionDepth: 5
    functionLinenumber: 295
    functionLinenumberEnd: 315
    functionName: test_simpleread
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - event_set
    - setup_test
    - tt_fail_perror
    - event_dispatch
    - exit
    - strlen
    - cleanup_test
    - event_add
    - shutdown
    linkageType: ''
    returnType: void
    signature: void test_simpleread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:323,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:325,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:326,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:327,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:328,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: test_simplewrite
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - event_dispatch
    - exit
    - cleanup_test
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_simplewrite(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: simpleread_multiple_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simpleread_multiple_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:346,1
    - Dst: write
      Src: /src/libevent/test/regress.c:348,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:348,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:349,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:352,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:354,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:355,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:356,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:357,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:358,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:359,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:360,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 340
    functionDepth: 5
    functionLinenumber: 340
    functionLinenumberEnd: 363
    functionName: test_simpleread_multiple
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - event_set
    - setup_test
    - tt_fail_perror
    - event_dispatch
    - exit
    - strlen
    - cleanup_test
    - event_add
    - shutdown
    linkageType: ''
    returnType: void
    signature: void test_simpleread_multiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:371,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:372,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - s
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: simpleclose_close_fd_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void simpleclose_close_fd_cb(evutil_socket_t s, short what, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: record_event_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void record_event_cb(evutil_socket_t s, short what, void *ptr)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:393,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:400,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress.c:406,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:407,1
    - Dst: strerror
      Src: /src/libevent/test/regress.c:407,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress.c:408,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:409,1
    - Dst: strerror
      Src: /src/libevent/test/regress.c:409,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:410,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:411,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:412,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:413,1
    - Dst: write
      Src: /src/libevent/test/regress.c:417,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress.c:419,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress.c:420,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:421,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress.c:422,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:429,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:431,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:433,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:434,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:436,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:437,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:438,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:439,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:443,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:444,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:445,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:449,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:450,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:452,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:453,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:454,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:458,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:460,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:462,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:464,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:466,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:468,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:470,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:472,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 389
    functionDepth: 6
    functionLinenumber: 389
    functionLinenumberEnd: 473
    functionName: test_simpleclose_rw
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_free
    - TT_BLATHER
    - EVUTIL_ERR_RW_RETRIABLE
    - event_new
    - evutil_socket_error_to_string
    - evutil_closesocket
    - evutil_make_socket_nonblocking
    - TT_DIE
    - event_add
    - event_base_loop
    - event_base_new
    - write
    - tt_assert
    - strerror
    - evutil_socketpair
    - memset
    - event_base_loopexit
    - event_base_free
    - evutil_socket_geterror
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_simpleclose_rw(void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress.c:482,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:483,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:488,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:489,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:492,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:493,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:495,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:496,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:497,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:497,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:500,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:501,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:501,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:504,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:505,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:505,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:507,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:515,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:515,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:518,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:518,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:519,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:523,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 475
    functionDepth: 6
    functionLinenumber: 475
    functionLinenumberEnd: 524
    functionName: test_simpleclose
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_get_features
    - tt_assert
    - tt_skip
    - strstr
    - event_base_loopexit
    - evutil_closesocket
    - event_free
    - event_base_loop
    - event_add
    - shutdown
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_simpleclose(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:533,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:534,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:541,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:542,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:543,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:544,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:545,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:546,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:547,1
    - Dst: memcmp
      Src: /src/libevent/test/regress.c:550,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 553
    functionName: test_multiple
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - event_dispatch
    - memcmp
    - exit
    - cleanup_test
    - event_add
    - memset
    linkageType: ''
    returnType: void
    signature: void test_multiple(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:562,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:563,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:570,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:571,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:572,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:573,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:574,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:575,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:576,1
    - Dst: memcmp
      Src: /src/libevent/test/regress.c:579,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 555
    functionDepth: 5
    functionLinenumber: 555
    functionLinenumberEnd: 582
    functionName: test_persistent
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - event_dispatch
    - memcmp
    - exit
    - cleanup_test
    - event_add
    - memset
    linkageType: ''
    returnType: void
    signature: void test_persistent(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:589,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:590,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:591,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:592,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:593,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:598,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:599,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:600,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:601,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:602,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:602,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:603,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:603,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:604,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:604,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:605,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:605,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:606,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 584
    functionDepth: 5
    functionLinenumber: 584
    functionLinenumberEnd: 613
    functionName: test_combined
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - tt_assert
    - setup_test
    - event_dispatch
    - cleanup_test
    - event_add
    - memset
    linkageType: ''
    returnType: void
    signature: void test_combined(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:621,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:625,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:626,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:627,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:629,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:630,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:631,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 636
    functionName: test_simpletimeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - setup_test
    - event_dispatch
    - evtimer_set
    - evutil_timerclear
    - cleanup_test
    - test_timeval_diff_eq
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void test_simpletimeout(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 650
    functionName: periodic_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void periodic_timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:659,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:662,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:664,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:666,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 669
    functionName: test_persistent_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - event_dispatch
    - evutil_timerclear
    - event_del
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_persistent_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:681,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:682,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:684,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:685,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:686,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:687,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 671
    functionDepth: 4
    functionLinenumber: 671
    functionLinenumberEnd: 691
    functionName: test_persistent_timeout_jump
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_assign
    - event_base_loopexit
    - event_del
    - event_add
    - tt_int_op
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_persistent_timeout_jump(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_active
      Src: /src/libevent/test/regress.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 4
    functionLinenumber: 699
    functionLinenumberEnd: 704
    functionName: activate_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active
    linkageType: ''
    returnType: void
    signature: void activate_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 715
    functionName: persist_active_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void persist_active_timeout_cb(evutil_socket_t fd, short event, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:727,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:731,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:733,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:737,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:741,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:743,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:744,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:746,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:747,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:749,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:750,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:751,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:752,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:753,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:754,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:755,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 717
    functionDepth: 4
    functionLinenumber: 717
    functionLinenumberEnd: 758
    functionName: test_persistent_active_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_dispatch
    - event_base_once
    - event_base_assert_ok_
    - event_assign
    - event_base_loopexit
    - event_del
    - event_add
    - test_timeval_diff_eq
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_persistent_active_timeout(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:772,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 775
    functionName: common_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_del
    linkageType: ''
    returnType: void
    signature: void common_timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:794,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:795,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:796,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:797,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:799,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:800,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:800,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:802,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:802,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:803,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:803,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:804,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:805,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:806,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:807,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:808,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:809,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:811,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:815,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:822,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:823,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:826,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:827,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:830,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:831,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:833,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:836,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:840,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:841,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:842,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:844,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:847,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:849,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:851,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:858,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:860,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:865,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 62
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 777
    functionDepth: 6
    functionLinenumber: 777
    functionLinenumberEnd: 868
    functionName: test_common_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_init_common_timeout
    - evutil_gettimeofday
    - event_base_dispatch
    - tt_assert
    - event_base_assert_ok_
    - event_assign
    - event_base_free
    - tt_ptr_op
    - event_add
    - test_timeval_diff_eq
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_common_timeout(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/test/regress.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 4
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: fork_signal_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    linkageType: ''
    returnType: void
    signature: void fork_signal_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:888,1
    - Dst: write
      Src: /src/libevent/test/regress.c:889,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:890,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:894,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:895,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 901
    functionName: simple_child_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - tt_fail_perror
    - exit
    - read
    - event_add
    linkageType: ''
    returnType: void
    signature: void simple_child_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:933,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress.c:936,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:937,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:938,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:941,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:942,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:943,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:947,1
    - Dst: evthread_make_base_notifiable
      Src: /src/libevent/test/regress.c:948,1
    - Dst: write
      Src: /src/libevent/test/regress.c:950,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:950,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:951,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:954,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:955,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:956,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:958,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:959,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:961,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:962,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:964,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:965,1
    - Dst: regress_fork
      Src: /src/libevent/test/regress.c:966,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:968,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:969,1
    - Dst: event_reinit
      Src: /src/libevent/test/regress.c:970,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:971,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:972,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:974,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:975,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:976,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:978,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:980,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:981,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:982,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:982,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:983,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:983,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:987,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:989,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:994,1
    - Dst: read
      Src: /src/libevent/test/regress.c:998,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:999,1
    - Dst: write
      Src: /src/libevent/test/regress.c:1001,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:1001,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:1002,1
    - Dst: fork_wait_check
      Src: /src/libevent/test/regress.c:1005,1
    - Dst: write
      Src: /src/libevent/test/regress.c:1008,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:1008,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:1009,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:1012,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1014,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1015,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1016,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1016,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1017,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1017,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1019,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1021,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1022,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1025,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:1027,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:1029,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 926
    functionDepth: 6
    functionLinenumber: 926
    functionLinenumberEnd: 1030
    functionName: test_fork
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - strlen
    - fork_wait_check
    - cleanup_test
    - TT_BLATHER
    - evsignal_add
    - regress_fork
    - event_reinit
    - evsignal_del
    - evutil_closesocket
    - evutil_make_socket_nonblocking
    - exit
    - evthread_make_base_notifiable
    - event_add
    - write
    - evsignal_set
    - kill
    - getpid
    - tt_assert
    - setup_test
    - tt_fail_perror
    - evutil_socketpair
    - fprintf
    - event_base_assert_ok_
    - event_base_free
    - event_dispatch
    - read
    - shutdown
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_fork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1036
    functionName: signal_cb_sa
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signal_cb_sa(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1045
    functionName: signal_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_del
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1053
    functionName: signal_alarm_fallback
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - TT_DIE
    linkageType: ''
    returnType: void
    signature: void signal_alarm_fallback(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libevent/test/regress.c:1061,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1063,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1064,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1067,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1068,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:1071,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1074,1
    - Dst: setitimer
      Src: /src/libevent/test/regress.c:1074,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1076,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1078,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - find_reorder
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1082
    functionName: test_simple_signal_impl
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - setitimer
    - evsignal_del
    - evsignal_add
    - event_dispatch
    - cleanup_test
    - signal
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_simple_signal_impl(int find_reorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1087,1
    - Dst: test_simple_signal_impl
      Src: /src/libevent/test/regress.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 3
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: test_simple_signal
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - setup_test
    - test_simple_signal_impl
    linkageType: ''
    returnType: void
    signature: void test_simple_signal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1094,1
    - Dst: test_simple_signal_impl
      Src: /src/libevent/test/regress.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1096
    functionName: test_simple_signal_re_order
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - setup_test
    - test_simple_signal_impl
    linkageType: ''
    returnType: void
    signature: void test_simple_signal_re_order(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1099
    functionDepth: 3
    functionLinenumber: 1099
    functionLinenumberEnd: 1105
    functionName: signal_cb_free_event
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_free
    linkageType: ''
    returnType: void
    signature: void signal_cb_free_event(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_new
      Src: /src/libevent/test/regress.c:1113,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1113,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1114,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1116,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1116,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1117,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1117,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1120,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1106
    functionDepth: 6
    functionLinenumber: 1106
    functionLinenumberEnd: 1127
    functionName: test_signal_free_in_callback
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - kill
    - getpid
    - evsignal_new
    - event_base_loop
    - tt_int_op
    - evsignal_add
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_signal_free_in_callback(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1135,1
    - Dst: signal
      Src: /src/libevent/test/regress.c:1137,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1139,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1140,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1142,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1143,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:1145,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1148,1
    - Dst: setitimer
      Src: /src/libevent/test/regress.c:1148,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1150,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1153,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1155,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1159
    functionName: test_multiplesignal
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - setitimer
    - setup_test
    - evsignal_del
    - evsignal_add
    - event_dispatch
    - cleanup_test
    - signal
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_multiplesignal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1167,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1168,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1169,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1169,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:1170,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1171,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1173
    functionName: test_immediatesignal
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - event_loop
    - kill
    - getpid
    - evsignal_del
    - cleanup_test
    - evsignal_add
    linkageType: ''
    returnType: void
    signature: void test_immediatesignal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1182,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1183,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1183,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:1184,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1185,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1186,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1190
    functionName: test_signal_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - event_loop
    - evsignal_del
    - cleanup_test
    - tt_int_op
    - evsignal_add
    linkageType: ''
    returnType: void
    signature: void test_signal_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1197,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1198,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1199,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1200,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1201,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1192
    functionDepth: 6
    functionLinenumber: 1192
    functionLinenumberEnd: 1205
    functionName: test_signal_dealloc
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - event_base_free
    - evsignal_del
    - event_init
    - cleanup_test
    - evsignal_add
    linkageType: ''
    returnType: void
    signature: void test_signal_dealloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1214,1
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1216,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1217,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1218,1
    - Dst: close
      Src: /src/libevent/test/regress.c:1219,1
    - Dst: printf
      Src: /src/libevent/test/regress.c:1221,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1207
    functionDepth: 6
    functionLinenumber: 1207
    functionLinenumberEnd: 1227
    functionName: test_signal_pipeloss
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - printf
    - event_base_free
    - event_init
    - cleanup_test
    - close
    linkageType: ''
    returnType: void
    signature: void test_signal_pipeloss(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1243,1
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1244,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:1247,1
    - Dst: event_base_get_signal_method
      Src: /src/libevent/test/regress.c:1247,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:1248,1
    - Dst: event_base_get_signal_method
      Src: /src/libevent/test/regress.c:1248,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:1249,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:1253,1
    - Dst: event_get_method
      Src: /src/libevent/test/regress.c:1253,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1254,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1255,1
    - Dst: event_base_set
      Src: /src/libevent/test/regress.c:1256,1
    - Dst: event_base_set
      Src: /src/libevent/test/regress.c:1257,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1258,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1259,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:1260,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:1261,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:1264,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:1264,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:1265,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:1265,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1269,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1269,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1270,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1276,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1281,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1282,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1282,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1283,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1284,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1287,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1288,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1289,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1237
    functionDepth: 6
    functionLinenumber: 1237
    functionLinenumberEnd: 1290
    functionName: test_signal_switchbase
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - fprintf
    - kill
    - getpid
    - event_base_set
    - tt_skip
    - event_base_free
    - event_get_base
    - tt_ptr_op
    - event_init
    - exit
    - event_base_get_signal_method
    - event_get_method
    - cleanup_test
    - event_add
    - event_base_loop
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_signal_switchbase(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1300,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1303,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1304,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1309,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1311,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1311,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1323,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1296
    functionDepth: 6
    functionLinenumber: 1296
    functionLinenumberEnd: 1326
    functionName: test_signal_assert
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - kill
    - getpid
    - event_base_free
    - evsignal_del
    - event_init
    - cleanup_test
    - evsignal_add
    linkageType: ''
    returnType: void
    signature: void test_signal_assert(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1335,1
    - Dst: sigemptyset
      Src: /src/libevent/test/regress.c:1344,1
    - Dst: sigaction
      Src: /src/libevent/test/regress.c:1345,1
    - Dst: signal
      Src: /src/libevent/test/regress.c:1348,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1351,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1352,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1353,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1355,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1355,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1360,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1331
    functionDepth: 6
    functionLinenumber: 1331
    functionLinenumberEnd: 1363
    functionName: test_signal_restore
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_set
    - kill
    - getpid
    - event_base_free
    - evsignal_del
    - sigaction
    - event_init
    - cleanup_test
    - signal
    - sigemptyset
    - evsignal_add
    linkageType: ''
    returnType: void
    signature: void test_signal_restore(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/libevent/test/regress.c:1370,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1370,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - event
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1373
    functionName: signal_cb_swp
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - kill
    - getpid
    linkageType: ''
    returnType: void
    signature: void signal_cb_swp(int sig, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:1381,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1382,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1382,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1387
    functionName: timeout_cb_swp
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - kill
    - getpid
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void timeout_cb_swp(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1392,1
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1396,1
    - Dst: signal_set
      Src: /src/libevent/test/regress.c:1400,1
    - Dst: signal_add
      Src: /src/libevent/test/regress.c:1401,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:1402,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:1403,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1404,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1406,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1389
    functionDepth: 6
    functionLinenumber: 1389
    functionLinenumberEnd: 1409
    functionName: test_signal_while_processing
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - setup_test
    - event_base_free
    - signal_set
    - event_init
    - evtimer_set
    - event_dispatch
    - signal_add
    - cleanup_test
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void test_signal_while_processing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1419,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1420,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1421,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:1423,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1414
    functionDepth: 2
    functionLinenumber: 1414
    functionLinenumberEnd: 1427
    functionName: del_wait_thread
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - test_timeval_diff_eq
    - event_dispatch
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN del_wait_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:1433,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1436
    functionName: del_wait_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void del_wait_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1444,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:1446,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1447,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress.c:1449,1
    - Dst: write
      Src: /src/libevent/test/regress.c:1451,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:1451,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:1452,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:1457,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1462,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1463,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1464,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:1465,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress.c:1468,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1438
    functionDepth: 5
    functionLinenumber: 1438
    functionLinenumberEnd: 1474
    functionName: test_del_wait
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - event_set
    - THREAD_START
    - evutil_gettimeofday
    - setup_test
    - tt_fail_perror
    - THREAD_JOIN
    - strlen
    - event_del
    - event_add
    - test_timeval_diff_eq
    - tt_int_op
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_del_wait(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1476
    functionName: null_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1481,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1483
    functionName: test_del_notify_thread
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_dispatch
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN test_del_notify_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_set
      Src: /src/libevent/test/regress.c:1493,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1494,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress.c:1496,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:1500,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1503,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1485
    functionDepth: 5
    functionLinenumber: 1485
    functionLinenumberEnd: 1505
    functionName: test_del_notify
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - THREAD_START
    - THREAD_JOIN
    - event_del
    - event_add
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_del_notify(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1516,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1517,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1518,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1519,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1520,1
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1522,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1523,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1524,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1525,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1509
    functionDepth: 6
    functionLinenumber: 1509
    functionLinenumberEnd: 1529
    functionName: test_free_active_base
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_assign
    - event_base_free
    - event_init
    - event_active
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_free_active_base(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1538,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1541,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1542,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:1542,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1546,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1547,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:1547,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1531
    functionDepth: 4
    functionLinenumber: 1531
    functionLinenumberEnd: 1552
    functionName: test_manipulate_active_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - event_active
    - event_pending
    - event_del
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_manipulate_active_events(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:1558,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:1559,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:1560,1
    - Dst: tt_want
      Src: /src/libevent/test/regress.c:1561,1
    - Dst: event_base_get_running_event
      Src: /src/libevent/test/regress.c:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1554
    functionDepth: 4
    functionLinenumber: 1554
    functionLinenumberEnd: 1562
    functionName: event_selfarg_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_assert_ok_
    - event_base_loopexit
    - event_get_base
    - event_base_get_running_event
    - tt_want
    linkageType: ''
    returnType: void
    signature: void event_selfarg_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:1569,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1570,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1572,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:1573,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1564
    functionDepth: 5
    functionLinenumber: 1564
    functionLinenumberEnd: 1576
    functionName: test_event_new_selfarg
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_active
    - event_free
    - event_new
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_event_new_selfarg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1585,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1586,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1587,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1578
    functionDepth: 4
    functionLinenumber: 1578
    functionLinenumberEnd: 1589
    functionName: test_event_assign_selfarg
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - event_base_dispatch
    - event_active
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_event_assign_selfarg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1607,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1608,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1610,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1611,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1613,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1615,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1617,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1619,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1621,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1623,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1627,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1628,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1630,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1631,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1632,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1633,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1634,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1636,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1637,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1639,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1641,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1643,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1645,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1647,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1649,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1653,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1654,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1655,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1656,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1657,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1658,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1659,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1661,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1662,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1664,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1666,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1668,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1670,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1672,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1674,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1678,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1679,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1680,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1681,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1682,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1683,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1684,1
    - Dst: event_base_add_virtual_
      Src: /src/libevent/test/regress.c:1686,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1687,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1689,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1691,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1693,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1695,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1697,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1699,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1703,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1704,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1705,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1706,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1707,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1708,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1591
    functionDepth: 6
    functionLinenumber: 1591
    functionLinenumberEnd: 1713
    functionName: test_event_base_get_num_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - event_base_get_num_events
    - event_active
    - event_base_add_virtual_
    - event_add
    - event_base_loop
    - tt_int_op
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_event_base_get_num_events(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1732,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1733,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1734,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1735,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1737,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1738,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1739,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1741,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1743,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1745,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1747,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1749,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1751,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1753,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1758,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1759,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1761,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1762,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1763,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1764,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1765,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1767,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1768,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1770,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1772,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1774,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1776,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1778,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1780,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1785,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1786,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1787,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1788,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1789,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1790,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1791,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1793,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1794,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1796,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1798,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1800,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1802,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1804,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1806,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1811,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1812,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1813,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1814,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1815,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1816,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1817,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1819,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1821,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1823,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1825,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1826,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1827,1
    - Dst: event_base_add_virtual_
      Src: /src/libevent/test/regress.c:1829,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1830,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1832,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1834,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1836,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1838,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1840,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1842,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1847,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1848,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1849,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1850,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1851,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1852,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1715
    functionDepth: 6
    functionLinenumber: 1715
    functionLinenumberEnd: 1857
    functionName: test_event_base_get_max_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - event_assign
    - event_active
    - event_del
    - event_base_add_virtual_
    - event_add
    - event_base_loop
    - event_base_get_max_events
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_event_base_get_max_events(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1865,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1859
    functionDepth: 4
    functionLinenumber: 1859
    functionLinenumberEnd: 1870
    functionName: test_bad_assign
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_bad_assign(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1882,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1874
    functionDepth: 6
    functionLinenumber: 1874
    functionLinenumberEnd: 1886
    functionName: bad_reentrant_run_loop_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_loop
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void bad_reentrant_run_loop_cb(evutil_socket_t fd, short what, void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1895,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1898,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1899,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1900,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1888
    functionDepth: 6
    functionLinenumber: 1888
    functionLinenumberEnd: 1904
    functionName: test_bad_reentrant
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - event_base_loop
    - tt_int_op
    - event_active
    linkageType: ''
    returnType: void
    signature: void test_bad_reentrant(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:1913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1915
    functionName: write_a_byte_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: void
    signature: void write_a_byte_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:1922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1924
    functionName: read_and_drain_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: void
    signature: void read_and_drain_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - other_
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1926
    functionDepth: 2
    functionLinenumber: 1926
    functionLinenumberEnd: 1932
    functionName: activate_other_event_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active_later_
    linkageType: ''
    returnType: void
    signature: void activate_other_event_cb(evutil_socket_t fd, short what, void *other_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:1941,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:1942,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1943,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1944,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1945,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1946,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1947,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1948,1
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1949,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:1951,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1953,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:1955,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1957,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1958,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1960,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1961,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1962,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1963,1
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1965,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1966,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1968,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1969,1
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1973,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:1974,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1978,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1980,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1934
    functionDepth: 6
    functionLinenumber: 1934
    functionLinenumberEnd: 1984
    functionName: test_active_later
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_active_later_
    - event_base_assert_ok_
    - event_assign
    - event_base_loopexit
    - event_base_free
    - event_active
    - event_free
    - event_del
    - TT_BLATHER
    - event_add
    - event_base_loop
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_active_later(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1992
    functionName: incr_arg_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void incr_arg_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_remove_timer
      Src: /src/libevent/test/regress.c:1997,1
    - Dst: event_remove_timer
      Src: /src/libevent/test/regress.c:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1993
    functionDepth: 5
    functionLinenumber: 1993
    functionLinenumberEnd: 1999
    functionName: remove_timers_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_remove_timer
    linkageType: ''
    returnType: void
    signature: void remove_timers_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:2004,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2006
    functionName: send_a_byte_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - tt_fail_perror
    linkageType: ''
    returnType: void
    signature: void send_a_byte_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:2019,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2020,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2013
    functionDepth: 4
    functionLinenumber: 2013
    functionLinenumberEnd: 2026
    functionName: read_not_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - tt_int_op
    - read
    linkageType: ''
    returnType: void
    signature: void read_not_timeout_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2041,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:2043,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2045,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2046,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2047,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2048,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2049,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2050,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2051,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2052,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2053,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2054,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2055,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2056,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2057,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2058,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2059,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2060,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2062,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2064,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2065,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2067,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2069,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2070,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2071,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2072,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2028
    functionDepth: 5
    functionLinenumber: 2028
    functionLinenumberEnd: 2074
    functionName: test_event_remove_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - event_base_assert_ok_
    - evtimer_new
    - event_free
    - event_add
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_event_remove_timeout(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2076
    functionDepth: 0
    functionLinenumber: 2076
    functionLinenumberEnd: 2081
    functionName: test_event_timeout_lost_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_event_timeout_lost_cb(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2090,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:2092,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2093,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2097,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2100,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:2105,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2108,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:2109,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2110,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2112,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2082
    functionDepth: 6
    functionLinenumber: 2082
    functionLinenumberEnd: 2116
    functionName: test_event_timeout_lost
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_assert_ok_
    - event_active
    - event_free
    - event_add
    - event_base_loop
    - tt_int_op
    - event_new
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_event_timeout_lost(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2123,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress.c:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2125
    functionName: event_base_dispatch_threadcb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN event_base_dispatch_threadcb(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:2138,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2143,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress.c:2146,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:2152,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2155,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2156,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress.c:2157,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2161,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:2161,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2163,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2129
    functionDepth: 5
    functionLinenumber: 2129
    functionLinenumberEnd: 2167
    functionName: test_del_timeout_notify
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - THREAD_START
    - timeval_msec_diff
    - event_base_assert_ok_
    - THREAD_JOIN
    - event_free
    - event_del
    - event_add
    - tt_int_op
    - event_new
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_del_timeout_notify(void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2178,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2179,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress.c:2182,1
    - Dst: tt_abort_printf
      Src: /src/libevent/test/regress.c:2184,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:2187,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress.c:2188,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2190,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:2192,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2197,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2200,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress.c:2201,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:2203,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:2204,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2170
    functionDepth: 6
    functionLinenumber: 2170
    functionLinenumberEnd: 2209
    functionName: test_event_base_new
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - tt_abort_msg
    - tt_abort_perror
    - tt_abort_printf
    - event_assign
    - event_base_free
    - strlen
    - event_base_loop
    - event_add
    - shutdown
    - event_base_new
    linkageType: ''
    returnType: void
    signature: void test_event_base_new(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2217,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:2221,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:2222,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:2226,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2228,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2229,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2230,1
    - Dst: evtimer_del
      Src: /src/libevent/test/regress.c:2232,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2234,1
    - Dst: event_base_got_exit
      Src: /src/libevent/test/regress.c:2234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2235,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress.c:2235,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:2237,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2211
    functionDepth: 2
    functionLinenumber: 2211
    functionLinenumberEnd: 2242
    functionName: test_loopexit
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - test_timeval_diff_eq
    - tt_assert
    - setup_test
    - event_dispatch
    - evtimer_set
    - cleanup_test
    - event_loopexit
    - event_base_got_exit
    - event_base_got_break
    - evtimer_del
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void test_loopexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2250,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2252,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2254,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:2258,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:2262,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2264,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2265,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2268,1
    - Dst: event_base_got_exit
      Src: /src/libevent/test/regress.c:2268,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2269,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress.c:2269,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2271,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:2273,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2244
    functionDepth: 6
    functionLinenumber: 2244
    functionLinenumberEnd: 2279
    functionName: test_loopexit_multiple
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_dispatch
    - test_timeval_diff_eq
    - tt_assert
    - setup_test
    - event_base_loopexit
    - event_base_got_break
    - event_base_free
    - cleanup_test
    - event_base_got_exit
    - event_base_new
    linkageType: ''
    returnType: void
    signature: void test_loopexit_multiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_loopbreak
      Src: /src/libevent/test/regress.c:2285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2281
    functionDepth: 2
    functionLinenumber: 2281
    functionLinenumberEnd: 2286
    functionName: break_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopbreak
    linkageType: ''
    returnType: void
    signature: void break_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2288
    functionDepth: 0
    functionLinenumber: 2288
    functionLinenumberEnd: 2292
    functionName: fail_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fail_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2300,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:2304,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:2305,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:2306,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:2307,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2309,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2311,1
    - Dst: event_base_got_exit
      Src: /src/libevent/test/regress.c:2311,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2312,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress.c:2312,1
    - Dst: evtimer_del
      Src: /src/libevent/test/regress.c:2314,1
    - Dst: evtimer_del
      Src: /src/libevent/test/regress.c:2315,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2294
    functionDepth: 2
    functionLinenumber: 2294
    functionLinenumberEnd: 2319
    functionName: test_loopbreak
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - setup_test
    - event_dispatch
    - evtimer_set
    - cleanup_test
    - event_base_got_exit
    - event_base_got_break
    - evtimer_del
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void test_loopbreak(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:2331,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2334,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress.c:2335,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:2335,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2322
    functionDepth: 4
    functionLinenumber: 2322
    functionLinenumberEnd: 2340
    functionName: re_add_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_fail_perror
    - event_get_base
    - read
    - event_add
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void re_add_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:2347,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2348,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2350,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2350,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2351,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2351,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2353,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2353,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2354,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2354,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2356,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2356,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2357,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2357,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2358,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:2358,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2359,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2366,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2368,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2368,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2368,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2370,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2370,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2370,1
    - Dst: event_initialized
      Src: /src/libevent/test/regress.c:2374,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2375,1
    - Dst: event_initialized
      Src: /src/libevent/test/regress.c:2376,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2341
    functionDepth: 6
    functionLinenumber: 2341
    functionLinenumberEnd: 2378
    functionName: test_nonpersist_readd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - tt_assert
    - event_assign
    - event_initialized
    - event_pending
    - event_del
    - event_add
    - event_base_loop
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_nonpersist_readd(void *_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:2392,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2398,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2385
    functionDepth: 3
    functionLinenumber: 2385
    functionLinenumberEnd: 2400
    functionName: test_priorities_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - event_add
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void test_priorities_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2408,1
    - Dst: event_base_priority_init
      Src: /src/libevent/test/regress.c:2410,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2412,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2413,1
    - Dst: timeout_set
      Src: /src/libevent/test/regress.c:2415,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2416,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:2417,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2418,1
    - Dst: timeout_set
      Src: /src/libevent/test/regress.c:2421,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2422,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:2423,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2424,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2427,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2429,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2430,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2431,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2432,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2434,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2436,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2437,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - npriorities
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2402
    functionDepth: 4
    functionLinenumber: 2402
    functionLinenumberEnd: 2450
    functionName: test_priorities_impl
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - fprintf
    - event_base_priority_init
    - event_add
    - event_dispatch
    - exit
    - evutil_timerclear
    - event_del
    - TT_BLATHER
    - timeout_set
    - memset
    - event_priority_set
    linkageType: ''
    returnType: void
    signature: void test_priorities_impl(int npriorities)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_priorities_impl
      Src: /src/libevent/test/regress.c:2455,1
    - Dst: test_priorities_impl
      Src: /src/libevent/test/regress.c:2457,1
    - Dst: test_priorities_impl
      Src: /src/libevent/test/regress.c:2459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2452
    functionDepth: 5
    functionLinenumber: 2452
    functionLinenumberEnd: 2460
    functionName: test_priorities
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - test_priorities_impl
    linkageType: ''
    returnType: void
    signature: void test_priorities(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2475,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2467
    functionDepth: 4
    functionLinenumber: 2467
    functionLinenumberEnd: 2480
    functionName: prio_active_inversion_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active
    linkageType: ''
    returnType: void
    signature: void prio_active_inversion_cb(evutil_socket_t fd, short what, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2489,1
    - Dst: event_base_priority_init
      Src: /src/libevent/test/regress.c:2489,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2492,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2495,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2499,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2500,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2501,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2503,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2505,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2506,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2507,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2508,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2482
    functionDepth: 4
    functionLinenumber: 2482
    functionLinenumberEnd: 2512
    functionName: test_priority_active_inversion
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_base_priority_init
    - event_assign
    - event_active
    - event_priority_set
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_priority_active_inversion(void *data_)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2515
    functionDepth: 0
    functionLinenumber: 2515
    functionLinenumberEnd: 2522
    functionName: test_multiple_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_multiple_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2529,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:2531,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2532,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:2533,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2534,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:2535,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2536,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2538,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2538,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2539,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:2542,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2543,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2524
    functionDepth: 5
    functionLinenumber: 2524
    functionLinenumberEnd: 2549
    functionName: test_multiple_events_for_same_fd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - event_set
    - event_loop
    - setup_test
    - tt_fail_perror
    - strlen
    - event_del
    - cleanup_test
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_multiple_events_for_same_fd(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:2562,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2568,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2568,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2577
    functionName: read_once_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - strlen
    - tt_fail_perror
    - read
    linkageType: ''
    returnType: void
    signature: void read_once_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2586,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2588,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2588,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2589,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2593,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:2595,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:2597,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2598,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2599,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2600,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2579
    functionDepth: 5
    functionLinenumber: 2579
    functionLinenumberEnd: 2603
    functionName: test_want_only_once
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - event_set
    - setup_test
    - tt_fail_perror
    - event_add
    - event_dispatch
    - exit
    - strlen
    - evutil_timerclear
    - cleanup_test
    - event_loopexit
    linkageType: ''
    returnType: void
    signature: void test_want_only_once(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2610,1
    - Dst: evtag_init
      Src: /src/libevent/test/regress.c:2618,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2622,1
    - Dst: evtag_encode_int
      Src: /src/libevent/test/regress.c:2623,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2624,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2625,1
    - Dst: evtag_encode_int64
      Src: /src/libevent/test/regress.c:2629,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2633,1
    - Dst: evtag_decode_int
      Src: /src/libevent/test/regress.c:2633,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2634,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2635,1
    - Dst: evtag_decode_int64
      Src: /src/libevent/test/regress.c:2635,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2636,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2639,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2639,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2607
    functionDepth: 8
    functionLinenumber: 2607
    functionLinenumberEnd: 2642
    functionName: evtag_int_test
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evtag_decode_int
    - evbuffer_new
    - tt_assert
    - evtag_init
    - evbuffer_free
    - evtag_encode_int
    - EVBUFFER_LENGTH
    - TT_BLATHER
    - tt_uint_op
    - evtag_decode_int64
    - evtag_encode_int64
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void evtag_int_test(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2648,1
    - Dst: evtag_init
      Src: /src/libevent/test/regress.c:2654,1
    - Dst: test_weakrand
      Src: /src/libevent/test/regress.c:2658,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress.c:2659,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress.c:2660,1
    - Dst: evtag_unmarshal_timeval
      Src: /src/libevent/test/regress.c:2662,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2667,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress.c:2670,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2671,1
    - Dst: evtag_marshal_timeval
      Src: /src/libevent/test/regress.c:2673,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress.c:2674,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress.c:2676,1
    - Dst: evtag_unmarshal_timeval
      Src: /src/libevent/test/regress.c:2677,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:2678,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2644
    functionDepth: 10
    functionLinenumber: 2644
    functionLinenumberEnd: 2683
    functionName: evtag_fuzz
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - EVBUFFER_DATA
    - evtag_marshal_timeval
    - test_weakrand
    - evbuffer_new
    - evbuffer_add
    - evtag_unmarshal_timeval
    - evtag_init
    - evbuffer_free
    - evutil_timerclear
    - evbuffer_drain
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void evtag_fuzz(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2688,1
    - Dst: evtag_init
      Src: /src/libevent/test/regress.c:2695,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2699,1
    - Dst: evtag_encode_tag
      Src: /src/libevent/test/regress.c:2700,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2701,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2702,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2707,1
    - Dst: evtag_decode_tag
      Src: /src/libevent/test/regress.c:2707,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2708,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2711,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2711,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2685
    functionDepth: 8
    functionLinenumber: 2685
    functionLinenumberEnd: 2715
    functionName: evtag_tag_encoding
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - evbuffer_new
    - evtag_init
    - evtag_decode_tag
    - evbuffer_free
    - EVBUFFER_LENGTH
    - tt_uint_op
    - TT_BLATHER
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: void evtag_tag_encoding(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2720,1
    - Dst: evtag_marshal_int
      Src: /src/libevent/test/regress.c:2723,1
    - Dst: evtag_marshal_string
      Src: /src/libevent/test/regress.c:2724,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2726,1
    - Dst: evtag_peek
      Src: /src/libevent/test/regress.c:2726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2727,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2728,1
    - Dst: evtag_peek_length
      Src: /src/libevent/test/regress.c:2728,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2729,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2730,1
    - Dst: evtag_consume
      Src: /src/libevent/test/regress.c:2730,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2732,1
    - Dst: evtag_peek
      Src: /src/libevent/test/regress.c:2732,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2733,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2734,1
    - Dst: evtag_peek_length
      Src: /src/libevent/test/regress.c:2734,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2735,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2736,1
    - Dst: evtag_payload_length
      Src: /src/libevent/test/regress.c:2736,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2737,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2717
    functionDepth: 10
    functionLinenumber: 2717
    functionLinenumberEnd: 2741
    functionName: evtag_test_peek
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evtag_peek_length
    - evtag_marshal_int
    - evbuffer_new
    - evtag_consume
    - evtag_payload_length
    - evbuffer_free
    - evtag_peek
    - evtag_marshal_string
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void evtag_test_peek(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/regress.c:2747,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2753,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2757,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2762,1
    - Dst: assert
      Src: /src/libevent/test/regress.c:2763,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2765,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/regress.c:2765,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress.c:2766,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2768,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2770,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2771,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2771,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2773,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2778,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts:
    - condition: (cfg != NULL)
      pos:
        line_end: 2762
        line_start: 2762
        source_file: /src/libevent/test/regress.c
    constantsTouched: []
    func_position:
      end: 2781
      start: 2744
    functionDepth: 6
    functionLinenumber: 2744
    functionLinenumberEnd: 2781
    functionName: test_methods
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_get_supported_methods
    - tt_assert
    - event_config_avoid_method
    - event_base_free
    - event_config_free
    - tt_str_op
    - assert
    - event_base_new_with_config
    - TT_BLATHER
    - event_config_set_flag
    - event_config_new
    - tt_int_op
    - event_base_get_method
    linkageType: ''
    returnType: void
    signature: void test_methods(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_get_version
      Src: /src/libevent/test/regress.c:2790,1
    - Dst: event_get_version_number
      Src: /src/libevent/test/regress.c:2791,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2793,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2794,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2796,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2797,1
    - Dst: sscanf
      Src: /src/libevent/test/regress.c:2799,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2800,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2783
    functionDepth: 1
    functionLinenumber: 2783
    functionLinenumberEnd: 2804
    functionName: test_version
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - sscanf
    - tt_str_op
    - event_get_version
    - tt_int_op
    - event_get_version_number
    linkageType: ''
    returnType: void
    signature: void test_version(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2812,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2814,1
    - Dst: event_config_require_features
      Src: /src/libevent/test/regress.c:2814,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2816,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2818,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:2819,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2821,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2822,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2823,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:2823,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2828,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2806
    functionDepth: 6
    functionLinenumber: 2806
    functionLinenumberEnd: 2831
    functionName: test_base_features
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_get_features
    - tt_assert
    - event_base_free
    - event_config_require_features
    - event_config_free
    - event_base_new_with_config
    - event_config_new
    - tt_int_op
    - event_base_new
    linkageType: ''
    returnType: void
    signature: void test_base_features(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress.c:2839,1
    - Dst: putenv
      Src: /src/libevent/test/regress.c:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - v
    - o_
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2836
    functionDepth: 2
    functionLinenumber: 2836
    functionLinenumberEnd: 2841
    functionName: setenv
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - putenv
    linkageType: ''
    returnType: void
    signature: void setenv(const char *k, const char *v, int o_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress.c:2851,1
    - Dst: putenv
      Src: /src/libevent/test/regress.c:2852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2848
    functionDepth: 2
    functionLinenumber: 2848
    functionLinenumberEnd: 2853
    functionName: unsetenv
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - putenv
    linkageType: ''
    returnType: void
    signature: void unsetenv(const char *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress.c:2862,1
    - Dst: EVUTIL_TOUPPER_
      Src: /src/libevent/test/regress.c:2864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mname
    - buf
    - buflen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2858
    functionDepth: 2
    functionLinenumber: 2858
    functionLinenumberEnd: 2866
    functionName: methodname_to_envvar
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - EVUTIL_TOUPPER_
    - evutil_snprintf
    linkageType: ''
    returnType: void
    signature: void methodname_to_envvar(const char *mname, char *buf, size_t buflen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/libevent/test/regress.c:2882,1
    - Dst: unsetenv
      Src: /src/libevent/test/regress.c:2883,1
    - Dst: getenv
      Src: /src/libevent/test/regress.c:2884,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress.c:2886,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress.c:2888,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:2890,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/regress.c:2893,1
    - Dst: methodname_to_envvar
      Src: /src/libevent/test/regress.c:2895,1
    - Dst: unsetenv
      Src: /src/libevent/test/regress.c:2896,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2900,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2901,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2903,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2904,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2905,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:2909,1
    - Dst: setenv
      Src: /src/libevent/test/regress.c:2910,1
    - Dst: methodname_to_envvar
      Src: /src/libevent/test/regress.c:2913,1
    - Dst: setenv
      Src: /src/libevent/test/regress.c:2914,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2919,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2920,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2921,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2924,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2926,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2927,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2927,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2928,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2933,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress.c:2934,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2935,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2936,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2937,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2937,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:2939,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2944,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2946,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2869
    functionDepth: 6
    functionLinenumber: 2869
    functionLinenumberEnd: 2947
    functionName: test_base_environ
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_get_supported_methods
    - event_base_get_method
    - unsetenv
    - tt_assert
    - getenv
    - tt_skip
    - event_base_free
    - event_config_set_flag
    - event_config_free
    - setenv
    - TT_DECLARE
    - TT_BLATHER
    - event_base_new_with_config
    - event_config_new
    - tt_str_op
    - event_base_new
    - methodname_to_envvar
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_base_environ(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2949
    functionDepth: 1
    functionLinenumber: 2949
    functionLinenumberEnd: 2956
    functionName: read_called_once_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void read_called_once_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2958
    functionDepth: 1
    functionLinenumber: 2958
    functionLinenumberEnd: 2965
    functionName: timeout_called_once_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void timeout_called_once_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 2974
    functionName: immediate_called_twice_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void immediate_called_twice_cb(evutil_socket_t fd, short event, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2986,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2988,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2989,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2991,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2992,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2993,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2994,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2996,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2999,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3001,1
    - Dst: write
      Src: /src/libevent/test/regress.c:3003,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:3003,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:3004,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:3007,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:3009,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2976
    functionDepth: 2
    functionLinenumber: 2976
    functionLinenumberEnd: 3014
    functionName: test_event_once
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - event_base_dispatch
    - event_base_once
    - tt_fail_perror
    - strlen
    - shutdown
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_event_once(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:3026,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:3032,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:3034,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 3016
    functionDepth: 2
    functionLinenumber: 3016
    functionLinenumberEnd: 3039
    functionName: test_event_once_never
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - tt_int_op
    - event_base_once
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_event_once_never(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3050,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3052,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:3054,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3056,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3057,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3058,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:3060,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3061,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3062,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3064,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3064,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3065,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3065,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3066,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3066,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3067,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3067,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3068,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3068,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3069,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3069,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3070,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3070,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3072,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress.c:3072,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:3074,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3078,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3079,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3082,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3083,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3086,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3087,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3041
    functionDepth: 5
    functionLinenumber: 3041
    functionLinenumberEnd: 3089
    functionName: test_event_pending
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - tt_assert
    - evutil_timercmp
    - evtimer_new
    - event_pending
    - event_free
    - event_del
    - event_add
    - test_timeval_diff_eq
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_event_pending(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - e
    - data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3091
    functionDepth: 0
    functionLinenumber: 3091
    functionLinenumberEnd: 3095
    functionName: dfd_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dfd_cb(evutil_socket_t fd, short e, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:3105,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:3105,1
    - Dst: tinytest_set_test_skipped_
      Src: /src/libevent/test/regress.c:3106,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3110,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3111,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3115,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3116,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3116,1
    - Dst: close
      Src: /src/libevent/test/regress.c:3117,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3119,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3120,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3124,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3127
      start: 3097
    functionDepth: 6
    functionLinenumber: 3097
    functionLinenumberEnd: 3127
    functionName: test_event_closed_fd_poll
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tinytest_set_test_skipped_
    - event_pending
    - event_free
    - event_del
    - close
    - event_add
    - event_base_loop
    - tt_int_op
    - event_base_get_method
    - event_new
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_event_closed_fd_poll(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3144,1
    - Dst: write
      Src: /src/libevent/test/regress.c:3144,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:3145,1
    - Dst: dup
      Src: /src/libevent/test/regress.c:3148,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3149,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3151,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3152,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3153,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3154,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3156,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3157,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3158,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3160,1
    - Dst: close
      Src: /src/libevent/test/regress.c:3165,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3166,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3168,1
    - Dst: tt_want_int_op
      Src: /src/libevent/test/regress.c:3169,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3170,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3177,1
    - Dst: dup2
      Src: /src/libevent/test/regress.c:3177,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3178,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3179,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3180,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3181,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3183,1
    - Dst: tt_want_int_op
      Src: /src/libevent/test/regress.c:3184,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3185,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3189,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3191,1
    - Dst: close
      Src: /src/libevent/test/regress.c:3193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3194
      start: 3135
    functionDepth: 6
    functionLinenumber: 3135
    functionLinenumberEnd: 3194
    functionName: test_dup_fd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - tt_assert
    - dup
    - strlen
    - dup2
    - event_free
    - event_del
    - close
    - event_add
    - event_base_loop
    - tt_int_op
    - tt_want_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_dup_fd(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tinytest_set_test_skipped_
      Src: /src/libevent/test/regress.c:3201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3202
      start: 3198
    functionDepth: 1
    functionLinenumber: 3198
    functionLinenumberEnd: 3202
    functionName: test_mm_functions
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tinytest_set_test_skipped_
    linkageType: ''
    returnType: void
    signature: void test_mm_functions(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libevent/test/regress.c:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3204
    functionDepth: 0
    functionLinenumber: 3204
    functionLinenumberEnd: 3210
    functionName: check_dummy_mem_ok
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int check_dummy_mem_ok(void *mem_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress.c:3215,1
    - Dst: memcpy
      Src: /src/libevent/test/regress.c:3216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3212
    functionDepth: 0
    functionLinenumber: 3212
    functionLinenumberEnd: 3218
    functionName: dummy_malloc
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'void *

      dummy_malloc(size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dummy_malloc
      Src: /src/libevent/test/regress.c:3225,1
    - Dst: tt_want
      Src: /src/libevent/test/regress.c:3226,1
    - Dst: check_dummy_mem_ok
      Src: /src/libevent/test/regress.c:3226,1
    - Dst: realloc
      Src: /src/libevent/test/regress.c:3228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mem_
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3220
    functionDepth: 1
    functionLinenumber: 3220
    functionLinenumberEnd: 3230
    functionName: dummy_realloc
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - realloc
    - check_dummy_mem_ok
    - dummy_malloc
    - tt_want
    linkageType: ''
    returnType: void
    signature: 'void *

      dummy_realloc(void *mem_, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress.c:3236,1
    - Dst: check_dummy_mem_ok
      Src: /src/libevent/test/regress.c:3236,1
    - Dst: free
      Src: /src/libevent/test/regress.c:3238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mem_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3232
    functionDepth: 1
    functionLinenumber: 3232
    functionLinenumberEnd: 3239
    functionName: dummy_free
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - free
    - check_dummy_mem_ok
    - tt_want
    linkageType: ''
    returnType: void
    signature: void dummy_free(void *mem_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress.c:3246,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:3247,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/regress.c:3248,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:3249,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3250,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3251,1
    - Dst: check_dummy_mem_ok
      Src: /src/libevent/test/regress.c:3251,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:3254,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:3256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3241
    functionDepth: 6
    functionLinenumber: 3241
    functionLinenumberEnd: 3257
    functionName: test_mm_functions
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set_mem_functions
    - tt_assert
    - event_config_avoid_method
    - event_base_free
    - check_dummy_mem_ok
    - event_config_free
    - event_base_new_with_config
    - event_config_new
    linkageType: ''
    returnType: void
    signature: void test_mm_functions(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3260
    functionDepth: 0
    functionLinenumber: 3260
    functionLinenumberEnd: 3265
    functionName: many_event_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void many_event_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:3289,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:3290,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:3291,1
    - Dst: socket
      Src: /src/libevent/test/regress.c:3297,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3298,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3299,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:3299,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3301,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3303,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3304,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3306,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3309,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3313,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3315,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3321,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:3323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3326
      start: 3267
    functionDepth: 6
    functionLinenumber: 3267
    functionLinenumberEnd: 3326
    functionName: test_many_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - socket
    - evutil_closesocket
    - evutil_make_socket_nonblocking
    - event_free
    - event_add
    - event_base_loop
    - tt_int_op
    - memset
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_many_events(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3331,1
    - Dst: event_get_struct_event_size
      Src: /src/libevent/test/regress.c:3331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3328
    functionDepth: 1
    functionLinenumber: 3328
    functionLinenumberEnd: 3334
    functionName: test_struct_event_size
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_get_struct_event_size
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_struct_event_size(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3350,1
    - Dst: event_get_assignment
      Src: /src/libevent/test/regress.c:3351,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3353,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress.c:3354,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3355,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3356,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3357,1
    - Dst: event_get_assignment
      Src: /src/libevent/test/regress.c:3360,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3336
    functionDepth: 5
    functionLinenumber: 3336
    functionLinenumberEnd: 3365
    functionName: test_get_assignment
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - event_get_assignment
    - event_free
    - tt_fd_op
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_get_assignment(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_get_callback_arg
      Src: /src/libevent/test/regress.c:3375,1
    - Dst: event_get_callback
      Src: /src/libevent/test/regress.c:3377,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3379,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:3379,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - base
    - ev
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3386
      start: 3372
    functionDepth: 4
    functionLinenumber: 3372
    functionLinenumberEnd: 3386
    functionName: foreach_count_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_get_callback
    - event_get_base
    - tt_ptr_op
    - event_get_callback_arg
    - tt_int_op
    linkageType: ''
    returnType: int
    signature: int foreach_count_cb(const struct event_base *base, const struct event
      *ev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_get_callback_arg
      Src: /src/libevent/test/regress.c:3392,1
    - Dst: event_get_callback
      Src: /src/libevent/test/regress.c:3393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - ev
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3388
    functionDepth: 4
    functionLinenumber: 3388
    functionLinenumberEnd: 3400
    functionName: foreach_find_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_get_callback_arg
    - event_get_callback
    linkageType: ''
    returnType: int
    signature: int foreach_find_cb(const struct event_base *base, const struct event
      *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3416,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3417,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3420,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3420,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3421,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3421,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3423,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3424,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3425,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3426,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3427,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3430,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3430,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3432,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3433,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3434,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3435,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3436,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3437,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3438,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3439,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3442,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3442,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3444,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3402
    functionDepth: 5
    functionLinenumber: 3402
    functionLinenumberEnd: 3450
    functionName: test_event_foreach
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_foreach_event
    - tt_assert
    - tt_ptr_op
    - event_active
    - event_free
    - event_add
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_event_foreach(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3459,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress.c:3459,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:3462,1
    - Dst: event_base_update_cache_time
      Src: /src/libevent/test/regress.c:3465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3469
      start: 3455
    functionDepth: 4
    functionLinenumber: 3455
    functionLinenumberEnd: 3469
    functionName: cache_time_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_update_cache_time
    - tt_int_op
    - evutil_usleep_
    - event_base_gettimeofday_cached
    linkageType: ''
    returnType: void
    signature: void cache_time_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress.c:3479,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:3481,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress.c:3483,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:3485,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3486,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:3489,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3490,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress.c:3490,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3491,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress.c:3491,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3492,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3493,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3493,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:3495,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:3496,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3498,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3499,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3500,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3502,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3503,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3504,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:3506,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3509,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3509,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3509,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3510,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3510,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3510,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3512,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3512,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3512,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3513,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3513,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3513,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3515,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress.c:3515,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3516,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress.c:3516,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3521,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3523,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3525,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:3527,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:3529,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3471
    functionDepth: 6
    functionLinenumber: 3471
    functionLinenumberEnd: 3530
    functionName: test_gettimeofday_cached
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_dispatch
    - labs
    - timeval_msec_diff
    - tt_assert
    - event_base_gettimeofday_cached
    - strstr
    - event_base_free
    - evutil_timercmp
    - event_active
    - event_config_free
    - event_free
    - event_base_new_with_config
    - event_config_set_flag
    - event_config_new
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_gettimeofday_cached(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3532
    functionDepth: 0
    functionLinenumber: 3532
    functionLinenumberEnd: 3538
    functionName: tabf_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tabf_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_new
      Src: /src/libevent/test/regress.c:3552,1
    - Dst: evsignal_new
      Src: /src/libevent/test/regress.c:3553,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3554,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3555,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3556,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3557,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3558,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3559,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3561,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3562,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3563,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3564,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3565,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3566,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3567,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3568,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3572,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3573,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3575,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3578
      start: 3540
    functionDepth: 5
    functionLinenumber: 3540
    functionLinenumberEnd: 3578
    functionName: test_evmap_invalid_slots
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_free
    - evsignal_new
    - event_add
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_evmap_invalid_slots(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3594,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3597,1
    - Dst: event_base_active_by_signal
      Src: /src/libevent/test/regress.c:3600,1
    - Dst: event_base_active_by_signal
      Src: /src/libevent/test/regress.c:3601,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:3603,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3606,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3607,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3608,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3609,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3610,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3611,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3612,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3613,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3615,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3616,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3617,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3620,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3621,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3622,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3623,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:3626,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3629,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3630,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3631,1
    - Dst: event_base_active_by_signal
      Src: /src/libevent/test/regress.c:3633,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:3636,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3638,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3640,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3641,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3642,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3644,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3646,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3651,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3653,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3655,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3657,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3580
    functionDepth: 6
    functionLinenumber: 3580
    functionLinenumberEnd: 3662
    functionName: test_active_by_fd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_assert_ok_
    - event_base_active_by_signal
    - event_free
    - event_base_active_by_fd
    - event_add
    - event_base_loop
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_active_by_fd(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_rpc.c:82,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_rpc.c:84,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_rpc.c:87,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_rpc.c:89,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_rpc.c:91,1
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/test/regress_rpc.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pport
    argTypes:
    - ev_uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: http_setup
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evhttp_bind_socket_with_handle
    - evhttp_bound_socket_get_fd
    - evhttp_new
    - event_errx
    - regress_get_socket_port
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      http_setup(ev_uint16_t *pport)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_rpc.c:143,1
    - Dst: evrpc_init
      Src: /src/libevent/test/regress_rpc.c:144,1
    - Dst: EVRPC_REGISTER
      Src: /src/libevent/test/regress_rpc.c:146,1
    - Dst: EVRPC_REGISTER
      Src: /src/libevent/test/regress_rpc.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - phttp
    - pport
    - pbase
    argTypes:
    - struct evhttp**
    - ev_uint16_t*
    - struct evrpc_base**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: rpc_setup
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - http_setup
    - EVRPC_REGISTER
    - evrpc_init
    linkageType: ''
    returnType: void
    signature: void rpc_setup(struct evhttp **phttp, ev_uint16_t *pport, struct evrpc_base
      **pbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:160,1
    - Dst: EVRPC_UNREGISTER
      Src: /src/libevent/test/regress_rpc.c:160,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:161,1
    - Dst: EVRPC_UNREGISTER
      Src: /src/libevent/test/regress_rpc.c:161,1
    - Dst: evrpc_free
      Src: /src/libevent/test/regress_rpc.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evrpc_base*
    assertStmts:
    - condition: (EVRPC_UNREGISTER(base, Message) == 0)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (EVRPC_UNREGISTER(base, NeverReply) == 0)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: rpc_teardown
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evrpc_free
    - EVRPC_UNREGISTER
    - assert
    linkageType: ''
    returnType: void
    signature: void rpc_teardown(struct evrpc_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:171,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:172,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: rpc_postrequest_failure
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - event_loopexit
    linkageType: ''
    returnType: void
    signature: void rpc_postrequest_failure(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:192,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:194,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:195,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_rpc.c:202,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:203,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:206,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_rpc.c:207,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_rpc.c:209,1
    - Dst: tt_abort
      Src: /src/libevent/test/regress_rpc.c:212,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:217,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_rpc.c:219,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:221,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:223,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 227
    functionName: rpc_basic_test
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_connection_new
    - evhttp_request_new
    - evhttp_add_header
    - event_dispatch
    - rpc_teardown
    - evhttp_free
    - evbuffer_add_printf
    - evhttp_make_request
    - rpc_setup
    - evhttp_connection_free
    - tt_abort
    linkageType: ''
    returnType: void
    signature: void rpc_basic_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:235,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:236,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:239,1
    - Dst: kill_unmarshal
      Src: /src/libevent/test/regress_rpc.c:241,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:242,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:243,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:246,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 250
    functionName: rpc_postrequest_done
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - fprintf
    - kill_new
    - exit
    - kill_unmarshal
    - event_loopexit
    - kill_free
    linkageType: ''
    returnType: void
    signature: void rpc_postrequest_done(struct evhttp_request *req, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:262,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:264,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:265,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_rpc.c:272,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:274,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:275,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:279,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:282,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:283,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:284,1
    - Dst: msg_marshal
      Src: /src/libevent/test/regress_rpc.c:285,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:286,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_rpc.c:288,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:291,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:292,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:297,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_rpc.c:299,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:301,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 305
    functionName: rpc_basic_message
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - msg_free
    - fprintf
    - tt_assert
    - evhttp_connection_new
    - EVTAG_ASSIGN
    - evhttp_request_new
    - evhttp_add_header
    - event_dispatch
    - exit
    - msg_marshal
    - rpc_teardown
    - msg_new
    - evhttp_make_request
    - rpc_setup
    - evhttp_connection_free
    - evhttp_free
    linkageType: ''
    returnType: void
    signature: void rpc_basic_message(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_pool_new
      Src: /src/libevent/test/regress_rpc.c:313,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:314,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:316,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:317,1
    - Dst: evrpc_pool_add_connection
      Src: /src/libevent/test/regress_rpc.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - ev_uint16_t
    assertStmts:
    - condition: (pool != NULL)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evcon != NULL)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: rpc_pool_with_connection
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evrpc_pool_new
    - evrpc_pool_add_connection
    - assert
    - evhttp_connection_new
    linkageType: ''
    returnType: struct evrpc_pool
    signature: 'struct evrpc_pool *

      rpc_pool_with_connection(ev_uint16_t port)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_rpc.c:333,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:335,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:336,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:336,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:342,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:343,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:346,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:347,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:351,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:354,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:360,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - status
    - msg
    - kill
    - arg
    argTypes:
    - struct evrpc_status*
    - struct msg*
    - struct kill*
    - void*
    assertStmts:
    - condition: (header)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (strcmp(header, "ran") == 0)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 361
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 361
    functionName: GotKillCb
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    - evhttp_find_header
    - event_loopexit
    - EVTAG_GET
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void GotKillCb(struct evrpc_status *status,\n    struct msg *msg,
      struct kill *kill, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:373,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:374,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:377,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:378,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:382,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:385,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:392,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - status
    - msg
    - kill
    - arg
    argTypes:
    - struct evrpc_status*
    - struct msg*
    - struct kill*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 393
    functionName: GotKillCbTwo
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - fprintf
    - event_loopexit
    - EVTAG_GET
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void GotKillCbTwo(struct evrpc_status *status,\n    struct msg *msg,
      struct kill *kill, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:400,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:401,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:403,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:405,1
    - Dst: evrpc_hook_get_connection
      Src: /src/libevent/test/regress_rpc.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (evrpc_hook_get_connection(ctx) != NULL)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: rpc_hook_add_header
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - assert
    - evhttp_add_header
    - evrpc_hook_get_connection
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_add_header(void *ctx, struct evhttp_request *req,\n    struct
      evbuffer *evbuf, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_add_meta
      Src: /src/libevent/test/regress_rpc.c:414,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:416,1
    - Dst: evrpc_hook_get_connection
      Src: /src/libevent/test/regress_rpc.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (evrpc_hook_get_connection(ctx) != NULL)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: rpc_hook_add_meta
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 1
    functionsReached:
    - assert
    - evrpc_hook_add_meta
    - evrpc_hook_get_connection
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_add_meta(void *ctx, struct evhttp_request *req,\n    struct
      evbuffer *evbuf, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_rpc.c:425,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:429,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:430,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:430,1
    - Dst: evhttp_remove_header
      Src: /src/libevent/test/regress_rpc.c:432,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:433,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:435,1
    - Dst: evrpc_hook_find_meta
      Src: /src/libevent/test/regress_rpc.c:435,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:436,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:437,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:439,1
    - Dst: evrpc_hook_get_connection
      Src: /src/libevent/test/regress_rpc.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (header != NULL)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (strcmp(header, arg) == 0)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_hook_find_meta(ctx, "meta", &data, &data_len) == 0)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (data != NULL)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (data_len == 5)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_hook_get_connection(ctx) != NULL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 442
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 442
    functionName: rpc_hook_remove_header
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evrpc_hook_get_connection
    - evhttp_add_header
    - assert
    - evhttp_find_header
    - evhttp_remove_header
    - evrpc_hook_find_meta
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_remove_header(void *ctx, struct evhttp_request *req,\n
      \   struct evbuffer *evbuf, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:454,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:459,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:459,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:461,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:461,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:464,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:465,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:467,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:467,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:468,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:468,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:471,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:472,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:473,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:474,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:476,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:478,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:482,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:484,1
    - Dst: kill_clear
      Src: /src/libevent/test/regress_rpc.c:487,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:489,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:491,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:493,1
    - Dst: kill_clear
      Src: /src/libevent/test/regress_rpc.c:496,1
    - Dst: EVRPC_MAKE_CTX
      Src: /src/libevent/test/regress_rpc.c:500,1
    - Dst: evrpc_make_request
      Src: /src/libevent/test/regress_rpc.c:502,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:505,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:507,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:509,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:513,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:515,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:518,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (evrpc_add_hook(pool, EVRPC_OUTPUT, rpc_hook_add_meta, NULL))
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/libevent/test/regress_rpc.c
    - condition: "(evrpc_add_hook(base, EVRPC_OUTPUT, rpc_hook_add_header, (void*)\"output\")\n\t
        \   != NULL)"
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/libevent/test/regress_rpc.c
    - condition: "(evrpc_add_hook(base, EVRPC_INPUT, rpc_hook_add_header, (void*)\"input\")\n\t
        \   != NULL)"
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(pool, EVRPC_INPUT, rpc_hook_remove_header, (void*)"output"))
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 524
      start: 444
    functionDepth: 5
    functionLinenumber: 444
    functionLinenumberEnd: 524
    functionName: rpc_basic_client
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - msg_free
    - EVRPC_MAKE_REQUEST
    - evrpc_pool_free
    - tt_assert
    - rpc_pool_with_connection
    - evrpc_add_hook
    - EVTAG_ASSIGN
    - kill_new
    - EVRPC_MAKE_CTX
    - evrpc_make_request
    - kill_free
    - event_dispatch
    - rpc_teardown
    - msg_new
    - assert
    - rpc_setup
    - evhttp_free
    - kill_clear
    linkageType: ''
    returnType: void
    signature: void rpc_basic_client(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:540,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:542,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:543,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:546,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:547,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:548,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:549,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:551,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:552,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:554,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:555,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:559,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:561,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:563,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:567,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:569,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:571,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:574,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 577
    functionName: rpc_basic_queued_client
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - msg_free
    - EVRPC_MAKE_REQUEST
    - evrpc_pool_free
    - tt_assert
    - rpc_pool_with_connection
    - EVTAG_ASSIGN
    - kill_new
    - event_dispatch
    - rpc_teardown
    - msg_new
    - rpc_setup
    - evhttp_free
    - kill_free
    linkageType: ''
    returnType: void
    signature: void rpc_basic_queued_client(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kill_complete
      Src: /src/libevent/test/regress_rpc.c:587,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - status
    - msg
    - kill
    - arg
    argTypes:
    - struct evrpc_status*
    - struct msg*
    - struct kill*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 594
    functionName: GotErrorCb
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - kill_complete
    - event_loopexit
    linkageType: ''
    returnType: void
    signature: "void GotErrorCb(struct evrpc_status *status,\n    struct msg *msg,
      struct kill *kill, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_resume_request
      Src: /src/libevent/test/regress_rpc.c:610,1
    - Dst: free
      Src: /src/libevent/test/regress_rpc.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 612
    functionName: rpc_hook_pause_cb
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evrpc_resume_request
    - free
    linkageType: ''
    returnType: void
    signature: void rpc_hook_pause_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_rpc.c:618,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:621,1
    - Dst: memset
      Src: /src/libevent/test/regress_rpc.c:625,1
    - Dst: event_once
      Src: /src/libevent/test/regress_rpc.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (tmp != NULL)
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 628
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 628
    functionName: rpc_hook_pause
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - malloc
    - event_once
    - assert
    - memset
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_pause(void *ctx, struct evhttp_request *req, struct evbuffer
      *evbuf,\n    void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:640,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:642,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:642,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:643,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:643,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:645,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:646,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:647,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:647,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:648,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:648,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:651,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:652,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:653,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:654,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:656,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:658,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:662,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_rpc.c:664,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_rpc.c:665,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:669,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:672,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:674,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:677,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (evrpc_add_hook(pool, EVRPC_INPUT, rpc_hook_pause, pool))
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(base, EVRPC_INPUT, rpc_hook_pause, base))
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(pool, EVRPC_OUTPUT, rpc_hook_pause, pool))
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(base, EVRPC_OUTPUT, rpc_hook_pause, base))
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 680
      start: 630
    functionDepth: 5
    functionLinenumber: 630
    functionLinenumberEnd: 680
    functionName: rpc_basic_client_with_pause
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - msg_free
    - EVRPC_MAKE_REQUEST
    - evrpc_pool_free
    - tt_assert
    - rpc_pool_with_connection
    - evrpc_add_hook
    - EVTAG_ASSIGN
    - kill_new
    - event_dispatch
    - rpc_teardown
    - msg_new
    - assert
    - rpc_setup
    - evhttp_free
    - tt_int_op
    - kill_free
    linkageType: ''
    returnType: void
    signature: void rpc_basic_client_with_pause(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:692,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:694,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:695,1
    - Dst: evrpc_pool_set_timeout
      Src: /src/libevent/test/regress_rpc.c:698,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:701,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:702,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:703,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:704,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:706,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:708,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:712,1
    - Dst: EVRPC_REQUEST_DONE
      Src: /src/libevent/test/regress_rpc.c:715,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:717,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:719,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:723,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:725,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:728,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 731
    functionName: rpc_client_timeout
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - EVRPC_REQUEST_DONE
    - msg_free
    - EVRPC_MAKE_REQUEST
    - evrpc_pool_free
    - tt_assert
    - rpc_pool_with_connection
    - EVTAG_ASSIGN
    - kill_new
    - evrpc_pool_set_timeout
    - event_dispatch
    - rpc_teardown
    - msg_new
    - rpc_setup
    - evhttp_free
    - kill_free
    linkageType: ''
    returnType: void
    signature: void rpc_client_timeout(void)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_rpc.c:739,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:744,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:746,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:748,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:749,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:751,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:752,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:755,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:756,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:758,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:759,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_rpc.c:763,1
    - Dst: EVTAG_ARRAY_ADD
      Src: /src/libevent/test/regress_rpc.c:765,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:767,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:769,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:770,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:773,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:775,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:777,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:778,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:781,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:782,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:783,1
    - Dst: msg_complete
      Src: /src/libevent/test/regress_rpc.c:786,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:787,1
    - Dst: evtag_marshal_msg
      Src: /src/libevent/test/regress_rpc.c:789,1
    - Dst: evtag_peek
      Src: /src/libevent/test/regress_rpc.c:791,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:792,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_rpc.c:795,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:797,1
    - Dst: evtag_unmarshal_msg
      Src: /src/libevent/test/regress_rpc.c:798,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:799,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_rpc.c:801,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_rpc.c:802,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_rpc.c:803,1
    - Dst: EVTAG_HAS
      Src: /src/libevent/test/regress_rpc.c:807,1
    - Dst: EVTAG_HAS
      Src: /src/libevent/test/regress_rpc.c:808,1
    - Dst: EVTAG_HAS
      Src: /src/libevent/test/regress_rpc.c:809,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:810,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:813,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:814,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:817,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:818,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:822,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:823,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:830,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:831,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:834,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:835,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:836,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:839,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:840,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:841,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:844,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:846,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:849,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:850,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:853,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:855,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_rpc.c:857,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_rpc.c:860,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:860,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:864,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_rpc.c:865,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_rpc.c:868,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:875,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:877,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_rpc.c:879,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 880
    functionName: rpc_test
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - EVTAG_ASSIGN
    - EVTAG_ARRAY_LEN
    - evbuffer_free
    - EVTAG_ARRAY_ADD_VALUE
    - TT_BLATHER
    - EVTAG_ARRAY_GET
    - EVTAG_ARRAY_ADD
    - msg_free
    - evutil_timersub
    - msg_complete
    - EVTAG_HAS
    - msg_new
    - tt_uint_op
    - evtag_peek
    - TT_DIE
    - EVTAG_GET
    - evutil_gettimeofday
    - tt_assert
    - evbuffer_new
    - evtag_marshal_msg
    - evtag_unmarshal_msg
    - tt_int_op
    - strcmp
    linkageType: ''
    returnType: void
    signature: void rpc_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:891,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:893,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:894,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_rpc.c:901,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:902,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:905,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_rpc.c:906,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_rpc.c:908,1
    - Dst: tt_abort
      Src: /src/libevent/test/regress_rpc.c:911,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:916,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_rpc.c:918,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:920,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:922,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 882
    functionDepth: 9
    functionLinenumber: 882
    functionLinenumberEnd: 926
    functionName: rpc_invalid_type
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_connection_new
    - evhttp_request_new
    - evhttp_add_header
    - event_dispatch
    - rpc_teardown
    - evhttp_free
    - evbuffer_add_printf
    - evhttp_make_request
    - rpc_setup
    - evhttp_connection_free
    - tt_abort
    linkageType: ''
    returnType: void
    signature: void rpc_invalid_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 933
    functionName: RPC_LEGACY
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPC_LEGACY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 938
    functionName: RPC_LEGACY
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPC_LEGACY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/test-time.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rand_int
    functionSourceFile: /src/libevent/test/test-time.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_
    linkageType: ''
    returnType: int
    signature: int rand_int(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rand_int
      Src: /src/libevent/test/test-time.c:70,1
    - Dst: rand_int
      Src: /src/libevent/test/test-time.c:72,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-time.c:74,1
    - Dst: evtimer_del
      Src: /src/libevent/test/test-time.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 79
    functionName: time_cb
    functionSourceFile: /src/libevent/test/test-time.c
    functionUses: 0
    functionsReached:
    - rand_int
    - evtimer_del
    - evtimer_add
    linkageType: ''
    returnType: void
    signature: void time_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-time.c:92,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-time.c:94,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/test-time.c:97,1
    - Dst: getenv
      Src: /src/libevent/test/test-time.c:99,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/test/test-time.c:100,1
    - Dst: event_base_new
      Src: /src/libevent/test/test-time.c:103,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-time.c:106,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-time.c:106,1
    - Dst: rand_int
      Src: /src/libevent/test/test-time.c:111,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-time.c:112,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-time.c:115,1
    - Dst: printf
      Src: /src/libevent/test/test-time.c:117,1
    - Dst: event_free
      Src: /src/libevent/test/test-time.c:129,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-time.c:132,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 134
    functionName: main
    functionSourceFile: /src/libevent/test/test-time.c
    functionUses: 0
    functionsReached:
    - printf
    - event_base_dispatch
    - evutil_weakrand_seed_
    - rand_int
    - getenv
    - MAKEWORD
    - event_enable_debug_logging
    - event_base_free
    - evtimer_new
    - event_free
    - WSAStartup
    - event_base_new
    - event_self_cbarg
    - evtimer_add
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: timeval_msec_diff
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long timeval_msec_diff(const struct timeval *start, const struct timeval
      *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_main.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - m
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: dnslogcb
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void dnslogcb(int w, const char *m)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:137,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_main.c:143,1
    - Dst: umask
      Src: /src/libevent/test/regress_main.c:145,1
    - Dst: mkstemp
      Src: /src/libevent/test/regress_main.c:147,1
    - Dst: write
      Src: /src/libevent/test/regress_main.c:150,1
    - Dst: close
      Src: /src/libevent/test/regress_main.c:151,1
    - Dst: unlink
      Src: /src/libevent/test/regress_main.c:152,1
    - Dst: lseek
      Src: /src/libevent/test/regress_main.c:155,1
    - Dst: strdup
      Src: /src/libevent/test/regress_main.c:156,1
    - Dst: GetTempPathW
      Src: /src/libevent/test/regress_main.c:167,1
    - Dst: GetLongPathNameW
      Src: /src/libevent/test/regress_main.c:170,1
    - Dst: GetTempFileNameW
      Src: /src/libevent/test/regress_main.c:174,1
    - Dst: GetLastError
      Src: /src/libevent/test/regress_main.c:176,1
    - Dst: CreateFileW
      Src: /src/libevent/test/regress_main.c:179,1
    - Dst: WideCharToMultiByte
      Src: /src/libevent/test/regress_main.c:187,1
    - Dst: strdup
      Src: /src/libevent/test/regress_main.c:190,1
    - Dst: WriteFile
      Src: /src/libevent/test/regress_main.c:191,1
    - Dst: _open_osfhandle
      Src: /src/libevent/test/regress_main.c:193,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - data
    - datalen
    - filename_out
    argTypes:
    - void*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 195
    functionName: regress_make_tmpfile
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - write
    - umask
    - mkstemp
    - getenv
    - GetTempPathW
    - GetTempFileNameW
    - _open_osfhandle
    - WideCharToMultiByte
    - snprintf
    - WriteFile
    - GetLongPathNameW
    - close
    - GetLastError
    - CreateFileW
    - strdup
    - unlink
    - lseek
    linkageType: ''
    returnType: int
    signature: int regress_make_tmpfile(const void *data, size_t datalen, char **filename_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/libevent/test/regress_main.c:201,1
    - Dst: vproc_transaction_begin
      Src: /src/libevent/test/regress_main.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: regress_fork
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 1
    functionsReached:
    - fork
    - vproc_transaction_begin
    linkageType: ''
    returnType: pid_t
    signature: pid_t regress_fork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: ignore_log_cb
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ignore_log_cb(int s, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mach_timebase_info
      Src: /src/libevent/test/regress_main.c:222,1
    - Dst: thread_policy_set
      Src: /src/libevent/test/regress_main.c:234,1
    - Dst: pthread_mach_thread_np
      Src: /src/libevent/test/regress_main.c:234,1
    - Dst: mach_error
      Src: /src/libevent/test/regress_main.c:239,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - pthread
    argTypes:
    - pthread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: move_pthread_to_realtime_scheduling_class
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - pthread_mach_thread_np
    - mach_timebase_info
    - exit
    - mach_error
    - thread_policy_set
    linkageType: ''
    returnType: void
    signature: void move_pthread_to_realtime_scheduling_class(pthread_t pthread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: move_pthread_to_realtime_scheduling_class
      Src: /src/libevent/test/regress_main.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pthread
    argTypes:
    - THREAD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: thread_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - move_pthread_to_realtime_scheduling_class
    linkageType: ''
    returnType: void
    signature: void thread_setup(THREAD_T pthread)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pthread
    argTypes:
    - THREAD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: thread_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_setup(THREAD_T pthread)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_SELF
      Src: /src/libevent/test/regress_main.c:269,1
    - Dst: thread_setup
      Src: /src/libevent/test/regress_main.c:271,1
    - Dst: thread_setup
      Src: /src/libevent/test/regress_main.c:273,1
    - Dst: THREAD_SELF
      Src: /src/libevent/test/regress_main.c:273,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_main.c:283,1
    - Dst: evthread_use_pthreads_with_flags
      Src: /src/libevent/test/regress_main.c:291,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:292,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/regress_main.c:294,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:295,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_main.c:302,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_main.c:303,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:304,1
    - Dst: event_init
      Src: /src/libevent/test/regress_main.c:309,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_main.c:311,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:313,1
    - Dst: event_base_start_iocp_
      Src: /src/libevent/test/regress_main.c:316,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_main.c:317,1
    - Dst: evdns_set_log_fn
      Src: /src/libevent/test/regress_main.c:323,1
    - Dst: evdns_init
      Src: /src/libevent/test/regress_main.c:324,1
    - Dst: event_set_log_callback
      Src: /src/libevent/test/regress_main.c:329,1
    - Dst: calloc
      Src: /src/libevent/test/regress_main.c:331,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:333,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 253
    functionDepth: 10
    functionLinenumber: 253
    functionLinenumberEnd: 339
    functionName: basic_test_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - evthread_use_pthreads_with_flags
    - fprintf
    - THREAD_SELF
    - event_enable_debug_mode
    - evdns_init
    - event_base_free
    - event_base_start_iocp_
    - event_init
    - exit
    - thread_setup
    - evthread_use_windows_threads
    - evdns_set_log_fn
    - evutil_socketpair
    - event_set_log_callback
    - event_base_new
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      basic_test_setup(const struct testcase_t *testcase)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: event_set_log_callback
      Src: /src/libevent/test/regress_main.c:347,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_main.c:351,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_main.c:353,1
    - Dst: evdns_shutdown
      Src: /src/libevent/test/regress_main.c:357,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_main.c:362,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_main.c:363,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_main.c:368,1
    - Dst: free
      Src: /src/libevent/test/regress_main.c:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 341
    functionDepth: 7
    functionLinenumber: 341
    functionLinenumberEnd: 373
    functionName: basic_test_cleanup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - free
    - event_base_assert_ok_
    - event_base_free
    - evutil_closesocket
    - evdns_shutdown
    - libevent_global_shutdown
    - event_set_log_callback
    linkageType: ''
    returnType: int
    signature: int basic_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_setup
      Src: /src/libevent/test/regress_main.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 384
    functionDepth: 11
    functionLinenumber: 384
    functionLinenumberEnd: 395
    functionName: legacy_test_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - basic_test_setup
    linkageType: ''
    returnType: void
    signature: 'void *

      legacy_test_setup(const struct testcase_t *testcase)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct basic_test_data*::legacy_test_fn
      Src: /src/libevent/test/regress_main.c:408,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_main.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 416
    functionName: run_legacy_test_fn
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - struct basic_test_data*::legacy_test_fn
    linkageType: ''
    returnType: void
    signature: void run_legacy_test_fn(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_cleanup
      Src: /src/libevent/test/regress_main.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 8
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: legacy_test_cleanup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - basic_test_cleanup
    linkageType: ''
    returnType: int
    signature: int legacy_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/regress_main.c:507,1
    - Dst: WSAStartup
      Src: /src/libevent/test/regress_main.c:509,1
    - Dst: signal
      Src: /src/libevent/test/regress_main.c:513,1
    - Dst: tinytest_skip
      Src: /src/libevent/test/regress_main.c:518,1
    - Dst: tinytest_skip
      Src: /src/libevent/test/regress_main.c:519,1
    - Dst: tinytest_skip
      Src: /src/libevent/test/regress_main.c:520,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:524,1
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/test/regress_main.c:525,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:528,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_main.c:529,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:532,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/test/regress_main.c:533,1
    - Dst: tinytest_set_aliases
      Src: /src/libevent/test/regress_main.c:536,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/regress_main.c:538,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:540,1
    - Dst: setbuf
      Src: /src/libevent/test/regress_main.c:541,1
    - Dst: setbuf
      Src: /src/libevent/test/regress_main.c:542,1
    - Dst: tinytest_main
      Src: /src/libevent/test/regress_main.c:545,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_main.c:548,1
    - Dst: WSACleanup
      Src: /src/libevent/test/regress_main.c:551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 500
    functionDepth: 6
    functionLinenumber: 500
    functionLinenumberEnd: 555
    functionName: main
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 1
    functionsReached:
    - WSACleanup
    - event_enable_debug_mode
    - evutil_weakrand_seed_
    - tinytest_main
    - tinytest_skip
    - MAKEWORD
    - getenv
    - event_enable_debug_logging
    - setbuf
    - tinytest_set_aliases
    - signal
    - libevent_global_shutdown
    - WSAStartup
    - evthread_enable_lock_debugging
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/bench_cascade.c:72,1
    - Dst: send
      Src: /src/libevent/test/bench_cascade.c:74,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: read_cb
    functionSourceFile: /src/libevent/test/bench_cascade.c
    functionUses: 0
    functionsReached:
    - perror
    - send
    - recv
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short which, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/bench_cascade.c:87,1
    - Dst: calloc
      Src: /src/libevent/test/bench_cascade.c:88,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:91,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:92,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/bench_cascade.c:96,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:97,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:98,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_cascade.c:103,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/bench_cascade.c:106,1
    - Dst: event_set
      Src: /src/libevent/test/bench_cascade.c:111,1
    - Dst: event_add
      Src: /src/libevent/test/bench_cascade.c:113,1
    - Dst: send
      Src: /src/libevent/test/bench_cascade.c:119,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:120,1
    - Dst: event_dispatch
      Src: /src/libevent/test/bench_cascade.c:122,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_cascade.c:124,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench_cascade.c:125,1
    - Dst: event_del
      Src: /src/libevent/test/bench_cascade.c:128,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_cascade.c:129,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_cascade.c:130,1
    - Dst: free
      Src: /src/libevent/test/bench_cascade.c:133,1
    - Dst: free
      Src: /src/libevent/test/bench_cascade.c:134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - num_pipes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: run_once
    functionSourceFile: /src/libevent/test/bench_cascade.c
    functionUses: 1
    functionsReached:
    - evutil_gettimeofday
    - event_set
    - free
    - evutil_timersub
    - event_add
    - evutil_closesocket
    - event_dispatch
    - exit
    - evutil_timerclear
    - event_del
    - perror
    - evutil_socketpair
    - send
    - calloc
    linkageType: ''
    returnType: struct timeval
    signature: 'struct timeval *

      run_once(int num_pipes)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test/bench_cascade.c:151,1
    - Dst: getopt
      Src: /src/libevent/test/bench_cascade.c:154,1
    - Dst: atoi
      Src: /src/libevent/test/bench_cascade.c:157,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_cascade.c:160,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:161,1
    - Dst: setrlimit
      Src: /src/libevent/test/bench_cascade.c:167,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:168,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:169,1
    - Dst: event_init
      Src: /src/libevent/test/bench_cascade.c:173,1
    - Dst: run_once
      Src: /src/libevent/test/bench_cascade.c:176,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:178,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_cascade.c:179,1
    - Dst: WSACleanup
      Src: /src/libevent/test/bench_cascade.c:184,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 188
    functionName: main
    functionSourceFile: /src/libevent/test/bench_cascade.c
    functionUses: 1
    functionsReached:
    - atoi
    - fprintf
    - run_once
    - setrlimit
    - WSACleanup
    - getopt
    - event_init
    - exit
    - perror
    - WSAStartup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/libevent/test/regress_openssl.c:61,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:62,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/libevent/test/regress_openssl.c:64,1
    - Dst: BIO_free
      Src: /src/libevent/test/regress_openssl.c:65,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: ssl_getkey
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - BIO_free
    - BIO_new_mem_buf
    - PEM_read_bio_PrivateKey
    linkageType: ''
    returnType: EVP_PKEY
    signature: 'EVP_PKEY *

      ssl_getkey(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/test/regress_openssl.c:82,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:84,1
    - Dst: X509_new
      Src: /src/libevent/test/regress_openssl.c:86,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:87,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:88,1
    - Dst: X509_set_version
      Src: /src/libevent/test/regress_openssl.c:88,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:89,1
    - Dst: ASN1_INTEGER_set
      Src: /src/libevent/test/regress_openssl.c:89,1
    - Dst: X509_get_serialNumber
      Src: /src/libevent/test/regress_openssl.c:89,1
    - Dst: X509_NAME_new
      Src: /src/libevent/test/regress_openssl.c:91,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:92,1
    - Dst: OBJ_txt2nid
      Src: /src/libevent/test/regress_openssl.c:93,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:94,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:95,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/libevent/test/regress_openssl.c:95,1
    - Dst: X509_set_subject_name
      Src: /src/libevent/test/regress_openssl.c:98,1
    - Dst: X509_set_issuer_name
      Src: /src/libevent/test/regress_openssl.c:99,1
    - Dst: X509_NAME_free
      Src: /src/libevent/test/regress_openssl.c:100,1
    - Dst: X509_time_adj
      Src: /src/libevent/test/regress_openssl.c:102,1
    - Dst: X509_getm_notBefore
      Src: /src/libevent/test/regress_openssl.c:102,1
    - Dst: X509_time_adj
      Src: /src/libevent/test/regress_openssl.c:104,1
    - Dst: X509_getm_notAfter
      Src: /src/libevent/test/regress_openssl.c:104,1
    - Dst: X509_set_pubkey
      Src: /src/libevent/test/regress_openssl.c:105,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:106,1
    - Dst: X509_sign
      Src: /src/libevent/test/regress_openssl.c:106,1
    - Dst: EVP_sha256
      Src: /src/libevent/test/regress_openssl.c:106,1
    - Dst: X509_free
      Src: /src/libevent/test/regress_openssl.c:110,1
    - Dst: X509_NAME_free
      Src: /src/libevent/test/regress_openssl.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: ssl_getcert
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_getm_notBefore
    - ASN1_INTEGER_set
    - X509_getm_notAfter
    - X509_NAME_free
    - X509_set_pubkey
    - X509_NAME_add_entry_by_NID
    - X509_new
    - X509_get_serialNumber
    - X509_sign
    - time
    - X509_set_issuer_name
    - tt_assert
    - OBJ_txt2nid
    - X509_NAME_new
    - X509_set_subject_name
    - X509_time_adj
    - EVP_sha256
    - X509_set_version
    linkageType: ''
    returnType: X509
    signature: 'X509 *

      ssl_getcert(EVP_PKEY *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/libevent/test/regress_openssl.c:122,1
    - Dst: SSLv23_method
      Src: /src/libevent/test/regress_openssl.c:122,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:131,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:136,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:139,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 148
    functionName: get_ssl_ctx
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - SSLv23_method
    - SSL_CTX_set_options
    - SSL_CTX_new
    linkageType: ''
    returnType: SSL_CTX
    signature: 'SSL_CTX *

      get_ssl_ctx(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/libevent/test/regress_openssl.c:162,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/test/regress_openssl.c:163,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/test/regress_openssl.c:164,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/test/regress_openssl.c:165,1
    - Dst: SSLeay
      Src: /src/libevent/test/regress_openssl.c:166,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress_openssl.c:167,1
    - Dst: SSLeay
      Src: /src/libevent/test/regress_openssl.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 173
    functionName: init_ssl
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 1
    functionsReached:
    - SSL_library_init
    - OpenSSL_add_all_algorithms
    - ERR_load_crypto_strings
    - SSLeay
    - SSL_load_error_strings
    - TT_DECLARE
    linkageType: ''
    returnType: void
    signature: void init_ssl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_ssl
      Src: /src/libevent/test/regress_openssl.c:178,1
    - Dst: ssl_getkey
      Src: /src/libevent/test/regress_openssl.c:180,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_openssl.c:181,1
    - Dst: ssl_getcert
      Src: /src/libevent/test/regress_openssl.c:183,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_openssl.c:184,1
    - Dst: basic_test_setup
      Src: /src/libevent/test/regress_openssl.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 11
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: ssl_test_setup
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - ssl_getcert
    - ssl_getkey
    - basic_test_setup
    - init_ssl
    linkageType: ''
    returnType: void
    signature: 'void *

      ssl_test_setup(const struct testcase_t *testcase)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_cleanup
      Src: /src/libevent/test/regress_openssl.c:193,1
    - Dst: X509_free
      Src: /src/libevent/test/regress_openssl.c:208,1
    - Dst: EVP_PKEY_free
      Src: /src/libevent/test/regress_openssl.c:209,1
    - Dst: SSL_CTX_free
      Src: /src/libevent/test/regress_openssl.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 8
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: ssl_test_cleanup
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - basic_test_cleanup
    - X509_free
    - SSL_CTX_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int ssl_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/libevent/test/regress_openssl.c:220,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: bio_rwcount_new
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_new(BIO *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_openssl.c:227,1
    - Dst: BIO_get_shutdown
      Src: /src/libevent/test/regress_openssl.c:230,1
    - Dst: BIO_set_init
      Src: /src/libevent/test/regress_openssl.c:231,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: bio_rwcount_free
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_shutdown
    - BIO_set_data
    - BIO_set_init
    - TT_BLATHER
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_free(BIO *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/test/regress_openssl.c:239,1
    - Dst: recv
      Src: /src/libevent/test/regress_openssl.c:240,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_openssl.c:242,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_openssl.c:242,1
    - Dst: BIO_set_retry_read
      Src: /src/libevent/test/regress_openssl.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - b
    - out
    - outlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: bio_rwcount_read
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - EVUTIL_SOCKET_ERROR
    - EVUTIL_ERR_RW_RETRIABLE
    - recv
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_read(BIO *b, char *out, int outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/test/regress_openssl.c:250,1
    - Dst: send
      Src: /src/libevent/test/regress_openssl.c:251,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_openssl.c:253,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_openssl.c:253,1
    - Dst: BIO_set_retry_write
      Src: /src/libevent/test/regress_openssl.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - b
    - in
    - inlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: bio_rwcount_write
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - BIO_get_data
    - EVUTIL_SOCKET_ERROR
    - EVUTIL_ERR_RW_RETRIABLE
    - send
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_write(BIO *b, const char *in, int inlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/test/regress_openssl.c:261,1
    - Dst: BIO_get_shutdown
      Src: /src/libevent/test/regress_openssl.c:268,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/test/regress_openssl.c:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: bio_rwcount_ctrl
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_shutdown
    - BIO_set_shutdown
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long bio_rwcount_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_rwcount_write
      Src: /src/libevent/test/regress_openssl.c:289,1
    - Dst: strlen
      Src: /src/libevent/test/regress_openssl.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - s
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: bio_rwcount_puts
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - bio_rwcount_write
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_puts(BIO *b, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/libevent/test/regress_openssl.c:298,1
    - Dst: BIO_meth_set_write
      Src: /src/libevent/test/regress_openssl.c:301,1
    - Dst: BIO_meth_set_read
      Src: /src/libevent/test/regress_openssl.c:302,1
    - Dst: BIO_meth_set_puts
      Src: /src/libevent/test/regress_openssl.c:303,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/libevent/test/regress_openssl.c:304,1
    - Dst: BIO_meth_set_create
      Src: /src/libevent/test/regress_openssl.c:305,1
    - Dst: BIO_meth_set_destroy
      Src: /src/libevent/test/regress_openssl.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: BIO_s_rwcount
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_read
    - BIO_meth_set_write
    - BIO_meth_set_puts
    - BIO_meth_set_ctrl
    - BIO_meth_set_create
    - BIO_meth_set_destroy
    - BIO_meth_new
    linkageType: ''
    returnType: BIO_METHOD
    signature: 'BIO_METHOD *

      BIO_s_rwcount(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/libevent/test/regress_openssl.c:314,1
    - Dst: BIO_s_rwcount
      Src: /src/libevent/test/regress_openssl.c:314,1
    - Dst: BIO_set_init
      Src: /src/libevent/test/regress_openssl.c:316,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:317,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/test/regress_openssl.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - close_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: BIO_new_rwcount
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_shutdown
    - BIO_new
    - BIO_s_rwcount
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: BIO
    signature: 'BIO *

      BIO_new_rwcount(int close_flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_rwcount
      Src: /src/libevent/test/regress_openssl.c:325,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:326,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:327,1
    - Dst: SSL_set_bio
      Src: /src/libevent/test/regress_openssl.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ssl
    - rw
    argTypes:
    - SSL*
    - struct rwcount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: BIO_setup
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_new_rwcount
    - BIO_set_data
    - SSL_set_bio
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void BIO_setup(SSL *ssl, struct rwcount *rw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-closed.c:59,1
    - Dst: exit
      Src: /src/libevent/test/test-closed.c:60,1
    - Dst: printf
      Src: /src/libevent/test/test-closed.c:64,1
    - Dst: printf
      Src: /src/libevent/test/test-closed.c:68,1
    - Dst: exit
      Src: /src/libevent/test/test-closed.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: closed_cb
    functionSourceFile: /src/libevent/test/test-closed.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void closed_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/test-closed.c:84,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:86,1
    - Dst: event_config_require_features
      Src: /src/libevent/test/test-closed.c:89,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-closed.c:90,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-closed.c:91,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-closed.c:98,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:99,1
    - Dst: send
      Src: /src/libevent/test/test-closed.c:104,1
    - Dst: strlen
      Src: /src/libevent/test/test-closed.c:104,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:105,1
    - Dst: shutdown
      Src: /src/libevent/test/test-closed.c:108,1
    - Dst: event_new
      Src: /src/libevent/test/test-closed.c:111,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-closed.c:111,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:113,1
    - Dst: event_add
      Src: /src/libevent/test/test-closed.c:116,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-closed.c:117,1
    - Dst: event_free
      Src: /src/libevent/test/test-closed.c:120,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-closed.c:121,1
    - Dst: event_free
      Src: /src/libevent/test/test-closed.c:126,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-closed.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 130
    functionName: main
    functionSourceFile: /src/libevent/test/test-closed.c
    functionUses: 1
    functionsReached:
    - event_base_dispatch
    - event_self_cbarg
    - event_base_free
    - event_add
    - event_config_require_features
    - event_config_free
    - strlen
    - event_free
    - event_base_new_with_config
    - event_config_new
    - perror
    - evutil_socketpair
    - shutdown
    - send
    - event_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/bench_httpclient.c:76,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/bench_httpclient.c:77,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/bench_httpclient.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: readcb
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 3
    functionsReached:
    - bufferevent_get_input
    - evbuffer_get_length
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *b, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:91,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench_httpclient.c:92,1
    - Dst: evutil_timeradd
      Src: /src/libevent/test/bench_httpclient.c:93,1
    - Dst: printf
      Src: /src/libevent/test/bench_httpclient.c:96,1
    - Dst: launch_request
      Src: /src/libevent/test/bench_httpclient.c:99,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:100,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:104,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/bench_httpclient.c:107,1
    - Dst: free
      Src: /src/libevent/test/bench_httpclient.c:108,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/bench_httpclient.c:109,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/bench_httpclient.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - b
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 6
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: errorcb
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 5
    functionsReached:
    - evutil_gettimeofday
    - printf
    - free
    - bufferevent_disable
    - evutil_timersub
    - evutil_timeradd
    - perror
    - bufferevent_free
    - launch_request
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void errorcb(struct bufferevent *b, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/test/bench_httpclient.c:120,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:121,1
    - Dst: setsockopt
      Src: /src/libevent/test/bench_httpclient.c:125,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: frob_socket
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 0
    functionsReached:
    - perror
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void frob_socket(evutil_socket_t sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/bench_httpclient.c:139,1
    - Dst: htonl
      Src: /src/libevent/test/bench_httpclient.c:144,1
    - Dst: htons
      Src: /src/libevent/test/bench_httpclient.c:145,1
    - Dst: socket
      Src: /src/libevent/test/bench_httpclient.c:146,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/bench_httpclient.c:148,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_httpclient.c:149,1
    - Dst: frob_socket
      Src: /src/libevent/test/bench_httpclient.c:152,1
    - Dst: connect
      Src: /src/libevent/test/bench_httpclient.c:153,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/bench_httpclient.c:154,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/test/bench_httpclient.c:155,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_httpclient.c:156,1
    - Dst: malloc
      Src: /src/libevent/test/bench_httpclient.c:161,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:163,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/bench_httpclient.c:165,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:167,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_httpclient.c:168,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/bench_httpclient.c:171,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/bench_httpclient.c:172,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/bench_httpclient.c:174,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/bench_httpclient.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 130
    functionDepth: 9
    functionLinenumber: 130
    functionLinenumberEnd: 178
    functionName: launch_request
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 1
    functionsReached:
    - evutil_gettimeofday
    - connect
    - bufferevent_get_output
    - malloc
    - socket
    - frob_socket
    - bufferevent_enable
    - htonl
    - evutil_make_socket_nonblocking
    - htons
    - evutil_closesocket
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - bufferevent_socket_new
    - evbuffer_add_printf
    - evutil_socket_geterror
    - perror
    - memset
    - bufferevent_setcb
    linkageType: ''
    returnType: int
    signature: int launch_request(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test/bench_httpclient.c:191,1
    - Dst: setvbuf
      Src: /src/libevent/test/bench_httpclient.c:196,1
    - Dst: event_base_new
      Src: /src/libevent/test/bench_httpclient.c:198,1
    - Dst: launch_request
      Src: /src/libevent/test/bench_httpclient.c:205,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_httpclient.c:206,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:209,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/bench_httpclient.c:211,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:213,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench_httpclient.c:214,1
    - Dst: puts
      Src: /src/libevent/test/bench_httpclient.c:218,1
    - Dst: printf
      Src: /src/libevent/test/bench_httpclient.c:234,1
    - Dst: WSACleanup
      Src: /src/libevent/test/bench_httpclient.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 181
    functionDepth: 10
    functionLinenumber: 181
    functionLinenumberEnd: 248
    functionName: main
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 1
    functionsReached:
    - setvbuf
    - evutil_gettimeofday
    - fprintf
    - event_base_dispatch
    - printf
    - WSACleanup
    - evutil_timersub
    - puts
    - WSAStartup
    - launch_request
    - event_base_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MIN
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/test-ratelim.c:131,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/test-ratelim.c:133,1
    - Dst: memset
      Src: /src/libevent/test/test-ratelim.c:134,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:135,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/test-ratelim.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 7
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: loud_writecb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_
    - evbuffer_add
    - evbuffer_get_length
    - memset
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void loud_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/test-ratelim.c:145,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:146,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/test-ratelim.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: discard_readcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - evbuffer_get_length
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void discard_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loud_writecb
      Src: /src/libevent/test/test-ratelim.c:155,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 8
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: write_on_connectedcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - loud_writecb
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void write_on_connectedcb(struct bufferevent *bev, short what, void
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/test-ratelim.c:164,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/test-ratelim.c:165,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/test-ratelim.c:167,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:168,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/test-ratelim.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: echo_readcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - evbuffer_add_buffer
    - bufferevent_get_input
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void echo_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/test-ratelim.c:175,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:176,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: echo_writecb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void echo_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-ratelim.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: echo_eventcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void echo_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-ratelim.c:197,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-ratelim.c:198,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:201,1
    - Dst: bufferevent_set_rate_limit
      Src: /src/libevent/test/test-ratelim.c:202,1
    - Dst: assert
      Src: /src/libevent/test/test-ratelim.c:204,1
    - Dst: bufferevent_get_token_bucket_cfg
      Src: /src/libevent/test/test-ratelim.c:204,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:205,1
    - Dst: bufferevent_add_to_rate_limit_group
      Src: /src/libevent/test/test-ratelim.c:208,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - listener
    - newsock
    - sourceaddr
    - socklen
    - ctx
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts:
    - condition: (bufferevent_get_token_bucket_cfg(bev) != NULL)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/libevent/test/test-ratelim.c
    constantsTouched: []
    func_position:
      end: 211
      start: 189
    functionDepth: 6
    functionLinenumber: 189
    functionLinenumberEnd: 211
    functionName: echo_listenercb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_token_bucket_cfg
    - bufferevent_enable
    - bufferevent_socket_new
    - assert
    - bufferevent_set_rate_limit
    - event_new
    - event_add
    - bufferevent_add_to_rate_limit_group
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void echo_listenercb(struct evconnlistener *listener, evutil_socket_t
      newsock,\n    struct sockaddr *sourceaddr, int socklen, void *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_read_limit
      Src: /src/libevent/test/test-ratelim.c:219,1
    - Dst: bufferevent_get_write_limit
      Src: /src/libevent/test/test-ratelim.c:220,1
    - Dst: bufferevent_get_max_to_read
      Src: /src/libevent/test/test-ratelim.c:221,1
    - Dst: bufferevent_get_max_to_write
      Src: /src/libevent/test/test-ratelim.c:222,1
    - Dst: B
      Src: /src/libevent/test/test-ratelim.c:234,1
    - Dst: B
      Src: /src/libevent/test/test-ratelim.c:235,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:240,1
    - Dst: event_base_get_running_event
      Src: /src/libevent/test/test-ratelim.c:240,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/test-ratelim.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 242
    functionName: check_bucket_levels_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_read_limit
    - bufferevent_get_write_limit
    - bufferevent_get_base
    - B
    - event_free
    - event_base_get_running_event
    - bufferevent_get_max_to_write
    - bufferevent_get_max_to_read
    linkageType: ''
    returnType: void
    signature: void check_bucket_levels_cb(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: B
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_rate_limit_group_get_read_limit
      Src: /src/libevent/test/test-ratelim.c:248,1
    - Dst: bufferevent_rate_limit_group_get_write_limit
      Src: /src/libevent/test/test-ratelim.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: check_group_bucket_levels_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_rate_limit_group_get_write_limit
    - bufferevent_rate_limit_group_get_read_limit
    linkageType: ''
    returnType: void
    signature: void check_group_bucket_levels_cb(evutil_socket_t fd, short events,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_rate_limit_group_decrement_read
      Src: /src/libevent/test/test-ratelim.c:259,1
    - Dst: bufferevent_rate_limit_group_decrement_write
      Src: /src/libevent/test/test-ratelim.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: group_drain_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_rate_limit_group_decrement_write
    - bufferevent_rate_limit_group_decrement_read
    linkageType: ''
    returnType: void
    signature: void group_drain_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-ratelim.c:271,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/test-ratelim.c:272,1
    - Dst: event_del
      Src: /src/libevent/test/test-ratelim.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: timer_bias_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_del
    - evutil_timersub
    linkageType: ''
    returnType: void
    signature: void timer_bias_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/test-ratelim.c:288,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/test-ratelim.c:291,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-ratelim.c:293,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:297,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-ratelim.c:297,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:298,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-ratelim.c:302,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-ratelim.c:303,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-ratelim.c:308,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:310,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-ratelim.c:312,1
    - Dst: MIN
      Src: /src/libevent/test/test-ratelim.c:315,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:317,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 319
    functionName: timer_bias_calculate
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_dispatch
    - fprintf
    - MIN
    - event_config_set_flag
    - event_base_free
    - event_config_free
    - event_free
    - event_base_new_with_config
    - event_new
    - event_config_new
    - event_add
    - event_self_cbarg
    linkageType: ''
    returnType: double
    signature: double timer_bias_calculate(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/test-ratelim.c:345,1
    - Dst: htonl
      Src: /src/libevent/test/test-ratelim.c:347,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/test-ratelim.c:351,1
    - Dst: timer_bias_calculate
      Src: /src/libevent/test/test-ratelim.c:353,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:355,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:360,1
    - Dst: event_config_new
      Src: /src/libevent/test/test-ratelim.c:363,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/test-ratelim.c:368,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/test-ratelim.c:370,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-ratelim.c:374,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-ratelim.c:375,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:377,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/test-ratelim.c:381,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:385,1
    - Dst: getsockname
      Src: /src/libevent/test/test-ratelim.c:390,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/test-ratelim.c:390,1
    - Dst: perror
      Src: /src/libevent/test/test-ratelim.c:392,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/test-ratelim.c:397,1
    - Dst: assert
      Src: /src/libevent/test/test-ratelim.c:401,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/test-ratelim.c:405,1
    - Dst: bufferevent_rate_limit_group_new
      Src: /src/libevent/test/test-ratelim.c:409,1
    - Dst: bufferevent_rate_limit_group_set_min_share
      Src: /src/libevent/test/test-ratelim.c:416,1
    - Dst: calloc
      Src: /src/libevent/test/test-ratelim.c:428,1
    - Dst: calloc
      Src: /src/libevent/test/test-ratelim.c:429,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-ratelim.c:432,1
    - Dst: assert
      Src: /src/libevent/test/test-ratelim.c:434,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-ratelim.c:435,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:437,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/test-ratelim.c:438,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/test-ratelim.c:445,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/test-ratelim.c:449,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:451,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:452,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:455,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:456,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-ratelim.c:459,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:462,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:464,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-ratelim.c:467,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/test-ratelim.c:469,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:476,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/test-ratelim.c:479,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-ratelim.c:480,1
    - Dst: bufferevent_rate_limit_group_free
      Src: /src/libevent/test/test-ratelim.c:484,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:487,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:489,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:491,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:493,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:495,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:497,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:501,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:503,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:516,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:518,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:523,1
    - Dst: fabs
      Src: /src/libevent/test/test-ratelim.c:525,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:526,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:531,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:535,1
    - Dst: fabs
      Src: /src/libevent/test/test-ratelim.c:537,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:538,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:545,1
    - Dst: sqrt
      Src: /src/libevent/test/test-ratelim.c:545,1
    - Dst: sqrt
      Src: /src/libevent/test/test-ratelim.c:547,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:548,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-ratelim.c:552,1
    - Dst: free
      Src: /src/libevent/test/test-ratelim.c:553,1
    - Dst: free
      Src: /src/libevent/test/test-ratelim.c:554,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (conn_bucket_cfg)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/libevent/test/test-ratelim.c
    - condition: (bevs[i])
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/libevent/test/test-ratelim.c
    constantsTouched: []
    func_position:
      end: 557
      start: 321
    functionDepth: 7
    functionLinenumber: 321
    functionLinenumberEnd: 557
    functionName: test_ratelimiting
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_rate_limit_group_new
    - event_base_dispatch
    - event_enable_debug_mode
    - evconnlistener_free
    - bufferevent_rate_limit_group_free
    - htonl
    - sqrt
    - event_free
    - event_new
    - event_base_init_common_timeout
    - evconnlistener_new_bind
    - bufferevent_enable
    - assert
    - event_config_free
    - event_add
    - printf
    - ev_token_bucket_cfg_new
    - getsockname
    - bufferevent_socket_new
    - evconnlistener_get_fd
    - evthread_use_windows_threads
    - event_base_new_with_config
    - bufferevent_socket_connect
    - event_config_set_flag
    - perror
    - bufferevent_free
    - timer_bias_calculate
    - memset
    - calloc
    - bufferevent_setcb
    - free
    - fprintf
    - event_base_loopexit
    - event_base_free
    - fabs
    - bufferevent_rate_limit_group_set_min_share
    - event_config_new
    linkageType: ''
    returnType: int
    signature: int test_ratelimiting(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:590,1
    - Dst: strtol
      Src: /src/libevent/test/test-ratelim.c:593,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:595,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - argc
    - argv
    - i
    - opt
    argTypes:
    - int
    - char**
    - int*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 607
    functionName: handle_option
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: int handle_option(int argc, char **argv, int *i, const struct option
      *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:612,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 625
    functionName: usage
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-ratelim.c:634,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-ratelim.c:637,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/test-ratelim.c:640,1
    - Dst: signal
      Src: /src/libevent/test/test-ratelim.c:643,1
    - Dst: strcmp
      Src: /src/libevent/test/test-ratelim.c:648,1
    - Dst: handle_option
      Src: /src/libevent/test/test-ratelim.c:649,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:654,1
    - Dst: usage
      Src: /src/libevent/test/test-ratelim.c:655,1
    - Dst: usage
      Src: /src/libevent/test/test-ratelim.c:661,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-ratelim.c:675,1
    - Dst: srand
      Src: /src/libevent/test/test-ratelim.c:677,1
    - Dst: srandom
      Src: /src/libevent/test/test-ratelim.c:679,1
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/test/test-ratelim.c:684,1
    - Dst: test_ratelimiting
      Src: /src/libevent/test/test-ratelim.c:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 627
    functionDepth: 8
    functionLinenumber: 627
    functionLinenumberEnd: 688
    functionName: main
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 1
    functionsReached:
    - evutil_gettimeofday
    - fprintf
    - evutil_weakrand_seed_
    - usage
    - handle_option
    - MAKEWORD
    - test_ratelimiting
    - srand
    - signal
    - srandom
    - WSAStartup
    - evthread_enable_lock_debugging
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - groups
    - ','
    - named
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: tinytest_skip
    functionSourceFile: /src/libevent/test/tinytest.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tinytest_skip(groups, named)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/libevent/test/regress_testutils.c:86,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_testutils.c:89,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_testutils.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: regress_get_socket_port
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 1
    functionsReached:
    - ntohs
    - getsockname
    linkageType: ''
    returnType: int
    signature: int regress_get_socket_port(evutil_socket_t fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/test/regress_testutils.c:107,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_testutils.c:109,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_testutils.c:112,1
    - Dst: memset
      Src: /src/libevent/test/regress_testutils.c:114,1
    - Dst: htons
      Src: /src/libevent/test/regress_testutils.c:116,1
    - Dst: inet_addr
      Src: /src/libevent/test/regress_testutils.c:117,1
    - Dst: bind
      Src: /src/libevent/test/regress_testutils.c:118,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:119,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_testutils.c:120,1
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/test/regress_testutils.c:122,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_testutils.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - base
    - portnum
    - psock
    - cb
    - arg
    argTypes:
    - struct event_base*
    - ev_uint16_t*
    - evutil_socket_t*
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 131
    functionName: regress_get_udp_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - tt_abort_perror
    - socket
    - evutil_closesocket
    - evutil_make_socket_nonblocking
    - htons
    - inet_addr
    - regress_get_socket_port
    - evdns_add_server_port_with_base
    - bind
    - memset
    linkageType: ''
    returnType: struct evdns_server_port
    signature: "struct evdns_server_port *\nregress_get_udp_dnsserver(struct event_base
      *base,\n    ev_uint16_t *portnum,\n    evutil_socket_t *psock,\n    evdns_request_callback_fn_type
      cb,\n    void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_testutils.c:145,1
    - Dst: htons
      Src: /src/libevent/test/regress_testutils.c:147,1
    - Dst: htonl
      Src: /src/libevent/test/regress_testutils.c:148,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_testutils.c:150,1
    - Dst: evdns_add_server_port_with_listener
      Src: /src/libevent/test/regress_testutils.c:155,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_testutils.c:159,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_testutils.c:161,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_testutils.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - base
    - portnum
    - psock
    - cb
    - arg
    argTypes:
    - struct event_base*
    - ev_uint16_t*
    - evutil_socket_t*
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 170
    functionName: regress_get_tcp_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - evconnlistener_free
    - evconnlistener_new_bind
    - evdns_add_server_port_with_listener
    - htonl
    - htons
    - evconnlistener_get_fd
    - regress_get_socket_port
    - memset
    linkageType: ''
    returnType: struct evdns_server_port
    signature: "struct evdns_server_port *\nregress_get_tcp_dnsserver(struct event_base
      *base,\n\tev_uint16_t *portnum,\n\tevutil_socket_t *psock,\n\tevdns_request_callback_fn_type
      cb,\n\tvoid *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_testutils.c:176,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:180,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_testutils.c:185,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: regress_clean_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    - evdns_close_server_port
    linkageType: ''
    returnType: void
    signature: void regress_clean_dnsserver(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/test/regress_testutils.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: strtolower
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: void
    signature: void strtolower(char *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:208,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_testutils.c:213,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:214,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:217,1
    - Dst: strtolower
      Src: /src/libevent/test/regress_testutils.c:222,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:224,1
    - Dst: atoi
      Src: /src/libevent/test/regress_testutils.c:225,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:227,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_testutils.c:227,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:229,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_testutils.c:229,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:232,1
    - Dst: atoi
      Src: /src/libevent/test/regress_testutils.c:233,1
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/test/regress_testutils.c:243,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:247,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_testutils.c:247,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:249,1
    - Dst: parse_csv_address_list
      Src: /src/libevent/test/regress_testutils.c:251,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_testutils.c:251,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_testutils.c:252,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:253,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_testutils.c:255,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:256,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_testutils.c:258,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:260,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_testutils.c:262,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_testutils.c:263,1
    - Dst: evdns_server_request_add_cname_reply
      Src: /src/libevent/test/regress_testutils.c:264,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:268,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_testutils.c:268,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_testutils.c:271,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_testutils.c:271,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 272
    functionName: regress_dns_server_cb
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - atoi
    - evdns_server_request_add_cname_reply
    - evdns_server_request_add_reply
    - evutil_ascii_strcasecmp
    - tt_assert
    - evutil_inet_pton
    - evdns_server_request_drop
    - parse_csv_address_list
    - evdns_server_request_add_a_reply
    - ARRAY_SIZE
    - strtolower
    - evdns_server_request_add_aaaa_reply
    - TT_DIE
    - evdns_server_request_respond
    - tt_want
    - strcmp
    linkageType: ''
    returnType: void
    signature: void regress_dns_server_cb(struct evdns_server_request *req, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_tcp_dnsserver
      Src: /src/libevent/test/regress_testutils.c:283,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_testutils.c:290,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_testutils.c:298,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - base
    - port
    - udp_seach_table
    - tcp_seach_table
    argTypes:
    - struct event_base*
    - ev_uint16_t*
    - struct regress_dns_server_table*
    - struct regress_dns_server_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 274
    functionDepth: 6
    functionLinenumber: 274
    functionLinenumberEnd: 300
    functionName: regress_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - regress_get_tcp_dnsserver
    - regress_get_udp_dnsserver
    - regress_clean_dnsserver
    linkageType: ''
    returnType: int
    signature: "int regress_dnsserver(struct event_base *base, ev_uint16_t *port,\n\tstruct
      regress_dns_server_table *udp_seach_table,\n\tstruct regress_dns_server_table
      *tcp_seach_table)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_testutils.c:306,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_testutils.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - lev
    - sa
    - socklen
    argTypes:
    - struct evconnlistener*
    - struct sockaddr*
    - ev_socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: regress_get_listener_addr
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 2
    functionsReached:
    - evconnlistener_get_fd
    - getsockname
    linkageType: ''
    returnType: int
    signature: "int regress_get_listener_addr(struct evconnlistener *lev,\n    struct
      sockaddr *sa, ev_socklen_t *socklen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:320,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:321,1
    - Dst: strlen
      Src: /src/libevent/test/regress_testutils.c:321,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_testutils.c:321,1
    - Dst: strcpy
      Src: /src/libevent/test/regress_testutils.c:322,1
    - Dst: strtok
      Src: /src/libevent/test/regress_testutils.c:323,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:325,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_testutils.c:328,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:329,1
    - Dst: strtok
      Src: /src/libevent/test/regress_testutils.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - s
    - family
    - addrs
    - addrs_size
    argTypes:
    - char*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 336
    functionName: parse_csv_address_list
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 1
    functionsReached:
    - strcpy
    - strtok
    - tt_assert
    - evutil_inet_pton
    - strlen
    - ARRAY_SIZE
    - TT_DIE
    linkageType: ''
    returnType: int
    signature: int parse_csv_address_list(const char *s, int family, void *addrs,
      size_t addrs_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:79,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:80,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:85,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:94,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:96,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:101,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:107,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:108,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:112,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:116,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:118,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 124
    functionName: evbuffer_validate_
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    linkageType: ''
    returnType: int
    signature: int evbuffer_validate_(struct evbuffer *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - buf
    - allocatedp
    - wastedp
    - usedp
    argTypes:
    - struct evbuffer*
    - size_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 163
    functionName: evbuffer_get_waste
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evbuffer_get_waste(struct evbuffer *buf, size_t *allocatedp, size_t
      *wastedp, size_t *usedp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: evbuffer_validate
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evbuffer_validate(buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:172,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:173,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:177,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:178,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:179,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:181,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:181,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:182,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:182,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress_buffer.c:182,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:184,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:185,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:187,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:187,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:188,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:189,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:189,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:190,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:190,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress_buffer.c:190,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:192,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:193,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:194,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:195,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:197,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:197,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:198,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:198,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:199,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:199,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress_buffer.c:199,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:201,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:202,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:203,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:204,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:204,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:206,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:207,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:208,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:208,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:209,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:209,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:210,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:212,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:213,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:214,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:215,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:217,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:218,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:218,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:219,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:221,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:222,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:223,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:224,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:227,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:228,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:229,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:230,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:231,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:234,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:235,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:235,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:239,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:240,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:241,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:241,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:242,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:244,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:244,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:246,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:246,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:248,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:250,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:260,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:261,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:262,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:263,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:265,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:270,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:272,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:272,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:273,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:275,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:275,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:277,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:278,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:283,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 78
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 168
    functionDepth: 9
    functionLinenumber: 168
    functionLinenumberEnd: 285
    functionName: test_evbuffer
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - EVBUFFER_DATA
    - evbuffer_add_buffer
    - strlen
    - evbuffer_free
    - evbuffer_reserve_space
    - evbuffer_add
    - evbuffer_commit_space
    - evbuffer_remove_buffer
    - evbuffer_drain
    - tt_assert
    - evbuffer_new
    - memcmp
    - evbuffer_validate
    - evbuffer_pullup
    - memset
    - strncmp
    - evbuffer_add_printf
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_prepend
    linkageType: ''
    returnType: void
    signature: void test_evbuffer(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - data
    - datalen
    - extra
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: no_cleanup
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_cleanup(const void *data, size_t datalen, void *extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:295,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:296,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:299,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:300,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:304,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:305,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:307,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:308,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:310,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:311,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:313,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:313,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:314,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:314,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:317,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:319,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:320,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:322,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:322,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:323,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:323,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:326,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 328
    functionName: test_evbuffer_remove_buffer_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_mem_op
    - evbuffer_new
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_pullup
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:333,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:334,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:335,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:337,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:338,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:340,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:341,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:342,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:344,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:345,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:347,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:348,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:349,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:351,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:351,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:352,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:352,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:354,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:355,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:357,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:357,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:358,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:358,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:360,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:362,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:363,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:365,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:365,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:366,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:366,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:368,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:368,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:369,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:369,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:372,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:373,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 330
    functionDepth: 7
    functionLinenumber: 330
    functionLinenumberEnd: 375
    functionName: test_evbuffer_remove_buffer_with_empty2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_mem_op
    - evbuffer_add_buffer
    - evbuffer_new
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_pullup
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty2(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:380,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:381,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:382,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:384,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:385,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:387,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:388,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:389,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:391,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:392,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:394,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:395,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:396,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:398,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:398,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:399,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:399,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:401,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:402,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:404,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:404,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:405,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:405,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:407,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:409,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:410,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:412,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:412,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:413,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:413,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:415,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:415,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:416,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:416,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:419,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:420,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 377
    functionDepth: 7
    functionLinenumber: 377
    functionLinenumberEnd: 422
    functionName: test_evbuffer_remove_buffer_with_empty3
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_mem_op
    - evbuffer_new
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_pullup
    - tt_int_op
    - evbuffer_prepend_buffer
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty3(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:429,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:430,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:431,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:432,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:433,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:433,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:434,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:434,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:436,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:437,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:438,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:439,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:439,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:440,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:440,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:442,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:443,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:444,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:445,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:446,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:447,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:447,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 424
    functionDepth: 7
    functionLinenumber: 424
    functionLinenumberEnd: 452
    functionName: test_evbuffer_pullup_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_mem_op
    - evbuffer_new
    - tt_assert
    - evbuffer_add
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_pullup
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_pullup_with_empty(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:459,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:460,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:462,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:463,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:465,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:465,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:466,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:466,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:467,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:467,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:468,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:468,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:469,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:469,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:471,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:472,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:476,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 454
    functionDepth: 7
    functionLinenumber: 454
    functionLinenumberEnd: 479
    functionName: test_evbuffer_remove_buffer_with_empty_front
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_mem_op
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_pullup
    - tt_int_op
    - evbuffer_prepend
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty_front(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:486,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:487,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:489,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:490,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:492,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:499,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:499,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:500,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:501,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:502,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:503,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:504,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:504,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:509,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:509,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:510,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:510,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:514,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:514,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:518,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:518,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:522,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:522,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:525,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:525,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:527,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:528,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:532,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 481
    functionDepth: 7
    functionLinenumber: 481
    functionLinenumberEnd: 535
    functionName: test_evbuffer_remove_buffer_adjust_last_with_datap_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_mem_op
    - evbuffer_add_buffer
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - evbuffer_commit_space
    - evbuffer_remove_buffer
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_reserve_space
    - evbuffer_pullup
    - tt_int_op
    - evbuffer_prepend
    - evbuffer_prepend_buffer
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_adjust_last_with_datap_with_empty(void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:540,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:541,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:542,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:544,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:546,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:547,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:548,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:550,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:552,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:553,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:554,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:556,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:556,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:557,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:557,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:559,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:560,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:563,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:564,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 537
    functionDepth: 7
    functionLinenumber: 537
    functionLinenumberEnd: 566
    functionName: test_evbuffer_add_buffer_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - evbuffer_add_buffer
    - evbuffer_new
    - evbuffer_add
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_buffer_with_empty(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:571,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:572,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:573,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:575,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:577,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:578,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:580,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:582,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:583,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:585,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:585,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:586,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:586,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:588,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:589,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:592,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:593,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 568
    functionDepth: 7
    functionLinenumber: 568
    functionLinenumberEnd: 595
    functionName: test_evbuffer_add_buffer_with_empty2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - evbuffer_add_buffer
    - evbuffer_new
    - evbuffer_add
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_buffer_with_empty2(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:601,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:608,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:609,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:610,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:610,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:611,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:612,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:613,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:617,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:618,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:618,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:619,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:619,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:620,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:624,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:625,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:626,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:627,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:628,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:630,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:630,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:631,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:631,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:633,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:637,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:638,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:639,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:640,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:641,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:642,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:644,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:646,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:646,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:647,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:647,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:649,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:653,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:654,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:655,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:656,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:657,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:658,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:659,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:660,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:662,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:664,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:664,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:665,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:665,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:666,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:669,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:670,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:671,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:672,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:673,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:677,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:679,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:681,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:683,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:687,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 691
    functionName: test_evbuffer_reserve2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_peek
    - tt_assert
    - evbuffer_new
    - evbuffer_commit_space
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_reserve_space
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve2(void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:698,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:702,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:703,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:707,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:708,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:709,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:710,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:716,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:717,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:719,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:721,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:722,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:723,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:725,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:730,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:731,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:732,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:734,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:736,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:738,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:744,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:745,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:746,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:747,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:748,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:753,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:754,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:756,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:757,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:759,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:763,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 764
    functionName: test_evbuffer_reserve_many
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_new
    - tt_assert
    - evbuffer_commit_space
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_reserve_space
    - tt_int_op
    - memset
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve_many(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:772,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:772,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:773,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:774,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:774,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:777,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:777,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:778,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:779,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:779,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:781,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 766
    functionDepth: 7
    functionLinenumber: 766
    functionLinenumberEnd: 786
    functionName: test_evbuffer_reserve_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_mem_op
    - evbuffer_new
    - tt_assert
    - evbuffer_add
    - evbuffer_commit_space
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_reserve_space
    - evbuffer_pullup
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve_with_empty(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_buffer.c:795,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:799,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:802,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:803,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:805,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:807,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:807,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:810,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:810,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:814,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:814,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:816,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 790
    functionDepth: 7
    functionLinenumber: 790
    functionLinenumberEnd: 821
    functionName: test_evbuffer_reserve_invalid_last_with_datap
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - evbuffer_commit_space
    - evbuffer_free
    - ARRAY_SIZE
    - evbuffer_validate
    - evbuffer_reserve_space
    - tt_int_op
    - evbuffer_prepend
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve_invalid_last_with_datap(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:831,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:834,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:835,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:835,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:836,1
    - Dst: evbuffer_get_waste
      Src: /src/libevent/test/regress_buffer.c:838,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:839,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:840,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:841,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:842,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:843,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:844,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:845,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:850,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:851,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:851,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:852,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:853,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:854,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:858,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:859,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:862,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:863,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:865,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:866,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:867,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:868,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:868,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:869,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:870,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:872,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:872,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:873,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:874,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:875,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:876,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:877,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:878,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:881,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:883,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:884,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:885,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:887,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:888,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:889,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:890,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:891,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 823
    functionDepth: 8
    functionLinenumber: 823
    functionLinenumberEnd: 895
    functionName: test_evbuffer_expand
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_expand
    - evbuffer_new
    - tt_assert
    - evbuffer_add
    - evbuffer_get_waste
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_drain
    - evbuffer_pullup
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_expand(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:902,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:903,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:904,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:905,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:907,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:908,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 897
    functionDepth: 8
    functionLinenumber: 897
    functionLinenumberEnd: 912
    functionName: test_evbuffer_expand_overflow
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_expand
    - evbuffer_new
    - evbuffer_add
    - evbuffer_free
    - evbuffer_validate
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_expand_overflow(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:920,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:921,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:922,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:923,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:924,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:925,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:926,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:927,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:928,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:930,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:930,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:931,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:932,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:933,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:934,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 914
    functionDepth: 9
    functionLinenumber: 914
    functionLinenumberEnd: 937
    functionName: test_evbuffer_add1
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_expand
    - evbuffer_new
    - tt_assert
    - evbuffer_add
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_pullup
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add1(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:948,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:949,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:950,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:951,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:952,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:953,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:954,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:955,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:956,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:957,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:959,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:960,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:961,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:962,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:963,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:964,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 939
    functionDepth: 9
    functionLinenumber: 939
    functionLinenumberEnd: 967
    functionName: test_evbuffer_add2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_expand
    - evbuffer_new
    - tt_assert
    - evbuffer_add
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_pullup
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add2(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:973,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:974,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:974,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - data
    - len
    - extra
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 979
    functionName: reference_cb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - strlen
    - tt_str_op
    - tt_want
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void reference_cb(const void *data, size_t len, void *extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:984,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:985,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:990,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:990,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:990,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:993,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:993,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:994,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:994,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:996,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:997,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:1000,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1001,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1002,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1004,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:1004,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1005,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1007,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1009,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1010,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1011,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1013,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1016,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1017,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1020,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 981
    functionDepth: 7
    functionLinenumber: 981
    functionLinenumberEnd: 1022
    functionName: test_evbuffer_reference
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_assert
    - evbuffer_new
    - evbuffer_commit_space
    - evbuffer_drain
    - memcmp
    - strlen
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_prepend
    - evbuffer_reserve_space
    - evbuffer_pullup
    - tt_int_op
    - evbuffer_remove
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reference(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1033,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1034,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1035,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1036,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:1037,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1038,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:1039,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1040,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1041,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1042,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1044,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1045,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:1046,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1047,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1048,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1049,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1024
    functionDepth: 9
    functionLinenumber: 1024
    functionLinenumberEnd: 1052
    functionName: test_evbuffer_reference2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_expand
    - evbuffer_add_reference
    - evbuffer_new
    - tt_assert
    - evbuffer_add
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_pullup
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reference2(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1064,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1065,1
    - Dst: evbuffer_write
      Src: /src/libevent/test/regress_buffer.c:1066,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_buffer.c:1069,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress_buffer.c:1071,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_buffer.c:1072,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress_buffer.c:1074,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1075,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1077,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1059
    functionDepth: 6
    functionLinenumber: 1059
    functionLinenumberEnd: 1083
    functionName: addfile_test_writecb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_write
    - tt_fail_perror
    - event_base_loopexit
    - evbuffer_get_length
    - evbuffer_validate
    - TT_BLATHER
    - evutil_socket_geterror
    - EVUTIL_ERR_RW_RETRIABLE
    linkageType: ''
    returnType: void
    signature: void addfile_test_writecb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:1091,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_buffer.c:1094,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress_buffer.c:1098,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_buffer.c:1099,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress_buffer.c:1100,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1101,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1085
    functionDepth: 8
    functionLinenumber: 1085
    functionLinenumberEnd: 1108
    functionName: addfile_test_readcb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_fail_perror
    - event_base_loopexit
    - evutil_socket_geterror
    - TT_BLATHER
    - EVUTIL_ERR_RW_RETRIABLE
    - evbuffer_read
    linkageType: ''
    returnType: void
    signature: void addfile_test_readcb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:1123,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1127,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_buffer.c:1128,1
    - Dst: close
      Src: /src/libevent/test/regress_buffer.c:1134,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1138,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1139,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/test/regress_buffer.c:1139,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1140,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:1144,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1145,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1113
    functionDepth: 7
    functionLinenumber: 1113
    functionLinenumberEnd: 1150
    functionName: test_evbuffer_add_file_leak1
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - free
    - regress_make_tmpfile
    - evbuffer_new
    - tt_assert
    - evbuffer_add_file
    - tt_skip
    - evbuffer_free
    - evbuffer_validate
    - close
    - TT_BLATHER
    - unlink
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_file_leak1(void *ptr)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1158,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1158,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1179,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1180,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1185,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1190,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1196,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1202,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1207,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1213,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1219,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_buffer.c:1224,1
    - Dst: malloc
      Src: /src/libevent/test/regress_buffer.c:1230,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1231,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/regress_buffer.c:1233,1
    - Dst: strdup
      Src: /src/libevent/test/regress_buffer.c:1235,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1236,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1237,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:1240,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1244,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1256,1
    - Dst: evbuffer_file_segment_new
      Src: /src/libevent/test/regress_buffer.c:1264,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1266,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1269,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1273,1
    - Dst: evbuffer_set_flags
      Src: /src/libevent/test/regress_buffer.c:1278,1
    - Dst: evutil_ersatz_socketpair_
      Src: /src/libevent/test/regress_buffer.c:1283,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1284,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_buffer.c:1286,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1287,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1290,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1293,1
    - Dst: evbuffer_add_file_segment
      Src: /src/libevent/test/regress_buffer.c:1293,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1296,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/test/regress_buffer.c:1296,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1300,1
    - Dst: event_new
      Src: /src/libevent/test/regress_buffer.c:1307,1
    - Dst: event_new
      Src: /src/libevent/test/regress_buffer.c:1309,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1311,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1312,1
    - Dst: event_add
      Src: /src/libevent/test/regress_buffer.c:1314,1
    - Dst: event_add
      Src: /src/libevent/test/regress_buffer.c:1315,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_buffer.c:1316,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1318,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1319,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1321,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1322,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1323,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:1325,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1326,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:1327,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1328,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1331,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1334,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/test/regress_buffer.c:1336,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1338,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1340,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_buffer.c:1342,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_buffer.c:1344,1
    - Dst: event_free
      Src: /src/libevent/test/regress_buffer.c:1346,1
    - Dst: event_free
      Src: /src/libevent/test/regress_buffer.c:1348,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:1350,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1351,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 132
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1153
    functionDepth: 7
    functionLinenumber: 1153
    functionLinenumberEnd: 1353
    functionName: test_evbuffer_add_file
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - strstr
    - strlen
    - evbuffer_free
    - event_free
    - event_new
    - regress_make_tmpfile
    - evutil_weakrand_
    - evutil_closesocket
    - TT_DIE
    - event_add
    - unlink
    - evbuffer_set_flags
    - evbuffer_file_segment_new
    - tt_assert
    - evbuffer_new
    - malloc
    - tt_skip
    - evbuffer_add_file
    - evbuffer_file_segment_free
    - memcmp
    - evbuffer_validate
    - evutil_ersatz_socketpair_
    - evbuffer_add_file_segment
    - evutil_socketpair
    - strdup
    - evbuffer_pullup
    - free
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_file(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - seg
    - flags
    - arg
    argTypes:
    - struct evbuffer_file_segment*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1366
    functionName: file_segment_cleanup_cp
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_segment_cleanup_cp(struct evbuffer_file_segment const* seg,
      int flags, void* arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:1378,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1382,1
    - Dst: fstat
      Src: /src/libevent/test/regress_buffer.c:1384,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1385,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1387,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1388,1
    - Dst: evbuffer_file_segment_new
      Src: /src/libevent/test/regress_buffer.c:1390,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1391,1
    - Dst: evbuffer_file_segment_add_cleanup_cb
      Src: /src/libevent/test/regress_buffer.c:1393,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1396,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1398,1
    - Dst: evbuffer_add_file_segment
      Src: /src/libevent/test/regress_buffer.c:1398,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1400,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1402,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/test/regress_buffer.c:1403,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1406,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1407,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1410,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1411,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1412,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1413,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1417,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/test/regress_buffer.c:1419,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:1421,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1368
    functionDepth: 6
    functionLinenumber: 1368
    functionLinenumberEnd: 1424
    functionName: test_evbuffer_file_segment_add_cleanup_cb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_file_segment_new
    - free
    - evbuffer_file_segment_add_cleanup_cb
    - regress_make_tmpfile
    - evbuffer_new
    - tt_assert
    - tt_skip
    - evbuffer_file_segment_free
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_add_file_segment
    - unlink
    - tt_int_op
    - fstat
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_file_segment_add_cleanup_cb(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - how_much
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1427
    functionDepth: 0
    functionLinenumber: 1427
    functionLinenumberEnd: 1432
    functionName: failing_malloc
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      failing_malloc(size_t how_much)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1438,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1439,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1453,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1453,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1454,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1455,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1456,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1457,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1458,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1459,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:1460,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1461,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:1462,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1462,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1463,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1465,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1465,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1466,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1467,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1468,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1469,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1470,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1471,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1472,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1473,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1474,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1475,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1475,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1476,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1476,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1477,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1481,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1481,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1482,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1483,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1484,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1485,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1486,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1488,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1489,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1490,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1491,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1493,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1494,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1495,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1496,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1498,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1499,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1501,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1502,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1503,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1504,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1505,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1506,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1507,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1511,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1511,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1512,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1513,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1514,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1515,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1516,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1518,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1519,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1520,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1521,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1523,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1524,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1525,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1526,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1527,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1529,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1530,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1531,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1532,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1532,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1533,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1536,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1536,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1537,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1538,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1539,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1540,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1542,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1543,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1544,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1546,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1547,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1548,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1549,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1550,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1551,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1551,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1552,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1556,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1556,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1557,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1559,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1560,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1561,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1562,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1564,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1565,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1566,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1567,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1569,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1570,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1571,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1572,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1573,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1574,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1575,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1576,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1577,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1580,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1580,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1587,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1589,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1590,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1591,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1592,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1593,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1594,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1595,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1596,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1597,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1598,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1599,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1600,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1601,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_buffer.c:1602,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1603,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1607,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1607,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1608,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1609,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1610,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1612,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1612,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1613,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1614,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1615,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1617,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1617,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1618,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1619,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1620,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1622,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1623,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1624,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1625,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1627,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1628,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1629,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1630,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1632,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1633,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1634,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1635,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1636,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1637,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1638,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1639,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1640,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1641,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1642,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1642,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1646,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1646,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1647,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1648,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1649,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1651,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1652,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1653,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1654,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:1658,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1659,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1660,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1661,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:1664,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1666,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1667,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1668,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1669,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1672,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1673,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 188
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1435
    functionDepth: 7
    functionLinenumber: 1435
    functionLinenumberEnd: 1675
    functionName: test_evbuffer_readln
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - free
    - evbuffer_readln
    - evbuffer_add_buffer
    - evbuffer_new
    - tt_line_eq
    - evbuffer_add
    - tt_assert
    - event_set_mem_functions
    - tt_ptr_op
    - memcmp
    - strlen
    - evbuffer_free
    - tt_uint_op
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_drain
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_readln(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - content
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1450
    functionName: tt_line_eq
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_line_eq(content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1680,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1686,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1686,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1688,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1689,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1690,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1693,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1694,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1695,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1697,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1699,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1700,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1701,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1704,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1705,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1706,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1709,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1710,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1711,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1714,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1715,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1716,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1718,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1721,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1722,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1724,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1724,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1724,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1727,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1728,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1677
    functionDepth: 7
    functionLinenumber: 1677
    functionLinenumberEnd: 1732
    functionName: test_evbuffer_search_eol
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_ptr_set
    - evbuffer_new
    - tt_assert
    - evbuffer_add
    - strlen
    - evbuffer_free
    - evbuffer_search_eol
    - evbuffer_get_length
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_search_eol(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1737,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1744,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_buffer.c:1746,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1747,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1754,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1760,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:1762,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1762,1
    - Dst: evbuffer_get_waste
      Src: /src/libevent/test/regress_buffer.c:1767,1
    - Dst: printf
      Src: /src/libevent/test/regress_buffer.c:1769,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1771,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1734
    functionDepth: 9
    functionLinenumber: 1734
    functionLinenumberEnd: 1776
    functionName: test_evbuffer_iterative
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - printf
    - evbuffer_new
    - tt_assert
    - strlen
    - evbuffer_get_waste
    - evbuffer_add_printf
    - tt_uint_op
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_free
    - evutil_snprintf
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_iterative(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1787,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1789,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1792,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1792,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1793,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1794,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1794,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1795,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1796,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1796,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1797,1
    - Dst: evbuffer_find
      Src: /src/libevent/test/regress_buffer.c:1798,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:1799,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1805,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1805,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1806,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1810,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1811,1
    - Dst: evbuffer_find
      Src: /src/libevent/test/regress_buffer.c:1812,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:1813,1
    - Dst: evbuffer_find
      Src: /src/libevent/test/regress_buffer.c:1816,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1817,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:1818,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:1818,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1778
    functionDepth: 7
    functionLinenumber: 1778
    functionLinenumberEnd: 1823
    functionName: test_evbuffer_find
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - strncmp
    - strlen
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_drain
    - evbuffer_find
    - tt_want
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_find(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1828,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1832,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1834,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1834,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1836,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1836,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1837,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1838,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1838,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1839,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1840,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1840,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1841,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:1844,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1846,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1847,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1848,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:1850,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1852,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1853,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:1855,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1857,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1858,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1859,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1861,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1861,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1863,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1863,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1864,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1865,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1865,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1866,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1867,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1867,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1869,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1869,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1870,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1871,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1871,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1872,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1873,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1873,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1874,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1875,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1875,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1876,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1877,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1877,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1878,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1825
    functionDepth: 4
    functionLinenumber: 1825
    functionLinenumberEnd: 1883
    functionName: test_evbuffer_ptr_set
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_ptr_set
    - tt_assert
    - evbuffer_new
    - evbuffer_commit_space
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_reserve_space
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_ptr_set(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1888,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1889,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1892,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1893,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1895,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1896,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1897,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1897,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1898,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1899,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1900,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1900,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1901,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1902,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1903,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1903,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1904,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1905,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1908,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1909,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1910,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1911,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1912,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1913,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1914,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1915,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1917,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1918,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1919,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1920,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1923,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1924,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1925,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1926,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1927,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1928,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1930,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1931,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1932,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1934,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1935,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1936,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1940,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1941,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1942,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1943,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1944,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1945,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1946,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1947,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1948,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1951,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1951,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1953,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1954,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1955,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1955,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1956,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1957,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1958,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1958,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1959,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1960,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1961,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1961,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1962,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1963,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1967,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 65
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1885
    functionDepth: 9
    functionLinenumber: 1885
    functionLinenumberEnd: 1970
    functionName: test_evbuffer_search
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_ptr_set
    - tt_int_op
    - evbuffer_add_buffer
    - tt_assert
    - evbuffer_new
    - evbuffer_search_range
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_search
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_search(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1972
    functionDepth: 9
    functionLinenumber: 1972
    functionLinenumberEnd: 1983
    functionName: log_change_callback
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_printf
    linkageType: ''
    returnType: void
    signature: "void log_change_callback(struct evbuffer *buffer,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - evbuffer
    - old_len
    - new_len
    - arg
    argTypes:
    - struct evbuffer*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1984
    functionDepth: 4
    functionLinenumber: 1984
    functionLinenumberEnd: 1990
    functionName: self_draining_callback
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: "void self_draining_callback(struct evbuffer *evbuffer, size_t old_len,\n\t\tsize_t
      new_len, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1995,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1996,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1997,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2000,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2001,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2002,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2004,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2005,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2011,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2012,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/test/regress_buffer.c:2013,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2014,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2015,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2016,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/test/regress_buffer.c:2017,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2018,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/test/regress_buffer.c:2019,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2020,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2021,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2021,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2022,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_buffer.c:2022,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2023,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2024,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_buffer.c:2024,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2025,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2027,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2027,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2029,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2029,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2031,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2031,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2032,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2032,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2034,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2035,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2036,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2037,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2038,1
    - Dst: evbuffer_setcb
      Src: /src/libevent/test/regress_buffer.c:2038,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2039,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:2040,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2040,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:2041,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2041,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:2042,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2042,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2043,1
    - Dst: evbuffer_setcb
      Src: /src/libevent/test/regress_buffer.c:2043,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2044,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2045,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2045,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2046,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2047,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2047,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2048,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2051,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2052,1
    - Dst: evbuffer_cb_suspend
      Src: /src/libevent/test/regress_buffer.c:2053,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2054,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2055,1
    - Dst: evbuffer_cb_suspend
      Src: /src/libevent/test/regress_buffer.c:2056,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2057,1
    - Dst: evbuffer_cb_unsuspend
      Src: /src/libevent/test/regress_buffer.c:2058,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2059,1
    - Dst: evbuffer_cb_unsuspend
      Src: /src/libevent/test/regress_buffer.c:2060,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2061,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2061,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2063,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2063,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2065,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2065,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:2071,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2072,1
    - Dst: evbuffer_setcb
      Src: /src/libevent/test/regress_buffer.c:2072,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2073,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:2074,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2079,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2081,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 66
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 1992
    functionDepth: 9
    functionLinenumber: 1992
    functionLinenumberEnd: 2084
    functionName: test_evbuffer_callbacks
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_remove_cb_entry
    - evbuffer_free
    - evbuffer_cb_unsuspend
    - evbuffer_remove_cb
    - tt_str_op
    - evbuffer_setcb
    - evbuffer_add_reference
    - evbuffer_add
    - tt_uint_op
    - evbuffer_drain
    - tt_assert
    - evbuffer_new
    - evbuffer_cb_set_flags
    - evbuffer_cb_suspend
    - evbuffer_validate
    - evbuffer_cb_clear_flags
    - evbuffer_pullup
    - event_set_mem_functions
    - evbuffer_add_printf
    - evbuffer_get_length
    - evbuffer_add_cb
    - tt_int_op
    - evbuffer_prepend
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_callbacks(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - len
    - info
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2096
    functionName: ref_done_cb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ref_done_cb(const void *data, size_t len, void *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2105,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2105,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2109,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2110,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2112,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2113,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2114,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2115,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2115,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2118,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2118,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2119,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2119,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2120,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2120,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2121,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2121,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2124,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2124,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2125,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2125,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2126,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2129,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2130,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2131,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2132,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2133,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2134,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2135,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2136,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2137,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2138,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2141,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2142,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2143,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2144,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2145,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2147,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2148,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2149,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2150,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2150,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2151,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2151,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2152,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2153,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2154,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2158,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2159,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2161,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2162,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2164,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2165,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2169,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2098
    functionDepth: 7
    functionLinenumber: 2098
    functionLinenumberEnd: 2172
    functionName: test_evbuffer_add_reference
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - evbuffer_add_buffer
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - memcmp
    - strlen
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_prepend
    - evbuffer_validate
    - evbuffer_drain
    - tt_int_op
    - evbuffer_remove
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_reference(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_buffer.c:2179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - data
    - len
    - arg
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2180
    functionName: ref_done_cb_with_offset
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    linkageType: ''
    returnType: void
    signature: void ref_done_cb_with_offset(const void *data, size_t len, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2192,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2193,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2194,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2196,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2197,1
    - Dst: evbuffer_add_reference_with_offset
      Src: /src/libevent/test/regress_buffer.c:2199,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2201,1
    - Dst: evbuffer_add_reference_with_offset
      Src: /src/libevent/test/regress_buffer.c:2202,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2204,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2204,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2207,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2207,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2208,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2209,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2209,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2210,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2213,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2213,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2214,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2215,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2218,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2219,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2220,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2221,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2222,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2225,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2226,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2227,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2228,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2230,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2231,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2232,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2233,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2233,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2234,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2237,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2238,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2240,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2244,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2181
    functionDepth: 7
    functionLinenumber: 2181
    functionLinenumberEnd: 2247
    functionName: test_evbuffer_add_reference_with_offset
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_mem_op
    - evbuffer_add_buffer
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - evbuffer_drain
    - strlen
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_add_reference_with_offset
    - evbuffer_prepend
    - evbuffer_validate
    - tt_int_op
    - evbuffer_remove
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_reference_with_offset(void* ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2256,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2256,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2260,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2261,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2263,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2264,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2265,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2266,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2266,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2268,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2269,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2271,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2271,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2273,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2274,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2274,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2277,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2277,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2277,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2280,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2280,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2281,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2281,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2282,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2282,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2283,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2283,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2286,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2286,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2287,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2287,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2288,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2291,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2291,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2292,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2292,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2293,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2293,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2294,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2294,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2297,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2297,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2298,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2298,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2299,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2302,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2305,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2305,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2306,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2306,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2308,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2308,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2309,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2309,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2313,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2249
    functionDepth: 7
    functionLinenumber: 2249
    functionLinenumberEnd: 2316
    functionName: test_evbuffer_multicast
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - memcmp
    - strlen
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_prepend
    - evbuffer_validate
    - evbuffer_add_buffer_reference
    - tt_int_op
    - evbuffer_remove
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_multicast(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2324,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2324,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2328,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2329,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2331,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2332,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2333,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2334,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2334,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2336,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2337,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2339,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2339,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2340,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2340,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2341,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2341,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2341,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2342,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2342,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2343,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2343,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2343,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2344,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2345,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2349,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2318
    functionDepth: 7
    functionLinenumber: 2318
    functionLinenumberEnd: 2352
    functionName: test_evbuffer_multicast_drain
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - strlen
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_validate
    - evbuffer_drain
    - evbuffer_add_buffer_reference
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_multicast_drain(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2359,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2360,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2364
    functionName: check_prepend
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: "void check_prepend(struct evbuffer *buffer,\n    const struct evbuffer_cb_info
      *cbinfo,\n    void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_buffer.c:2370,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2373,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2374,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2377,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2378,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2381,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2382,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2385,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2386,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2387,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2388,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2388,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2392,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2393,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2394,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2395,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2397,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2399,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2400,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2404,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2405,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2406,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2409,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2410,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2411,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2412,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2413,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2414,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2416,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2419,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2420,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2421,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2422,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2423,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2424,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2425,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_buffer.c:2426,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2427,1
    - Dst: tt_nstr_op
      Src: /src/libevent/test/regress_buffer.c:2428,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2428,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2429,1
    - Dst: tt_nstr_op
      Src: /src/libevent/test/regress_buffer.c:2430,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2430,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2431,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:2434,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2436,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 51
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2366
    functionDepth: 9
    functionLinenumber: 2366
    functionLinenumberEnd: 2440
    functionName: test_evbuffer_prepend
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_free
    - evbuffer_remove_cb
    - tt_str_op
    - evbuffer_remove
    - tt_nstr_op
    - evbuffer_drain
    - tt_assert
    - evbuffer_new
    - malloc
    - memcmp
    - evbuffer_validate
    - evbuffer_pullup
    - memset
    - evbuffer_prepend_buffer
    - free
    - evbuffer_add_printf
    - evbuffer_add_cb
    - tt_int_op
    - evbuffer_prepend
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_prepend(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2447,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2448,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2451,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2452,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2453,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2455,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2456,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:2456,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2456,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2457,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2442
    functionDepth: 7
    functionLinenumber: 2442
    functionLinenumberEnd: 2462
    functionName: test_evbuffer_empty_reference_prepend
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_assert
    - evbuffer_new
    - strncmp
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_pullup
    - evbuffer_prepend
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_empty_reference_prepend(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2468,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2469,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2470,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2471,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2474,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2475,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2476,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2477,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2478,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2479,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2481,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:2481,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2481,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2482,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2484,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2484,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2485,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2489,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2463
    functionDepth: 7
    functionLinenumber: 2463
    functionLinenumberEnd: 2492
    functionName: test_evbuffer_empty_reference_prepend_buffer
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - strncmp
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_pullup
    - evbuffer_prepend_buffer
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_empty_reference_prepend_buffer(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2501,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2502,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2503,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2504,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2505,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2506,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2508,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2511,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2511,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2513,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2513,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2515,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2516,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2516,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2517,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2517,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2518,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2518,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2519,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2519,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2520,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2520,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2521,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2521,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2525,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2494
    functionDepth: 9
    functionLinenumber: 2494
    functionLinenumberEnd: 2528
    functionName: test_evbuffer_peek_first_gt
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_ptr_set
    - evbuffer_peek
    - evbuffer_add_buffer
    - evbuffer_new
    - evbuffer_free
    - evbuffer_add_printf
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_peek_first_gt(void *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2543,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2544,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2546,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2547,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2551,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2552,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2555,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2556,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2557,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2558,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2559,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2560,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2563,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2564,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2565,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2566,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2567,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2570,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2571,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2572,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2573,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2574,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2575,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2578,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2579,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2580,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2581,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2584,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2585,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2586,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2587,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2588,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2591,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2592,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2593,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2594,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2595,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2596,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2597,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2598,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2601,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2602,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2603,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2604,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2605,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2606,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2607,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2608,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2611,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2612,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2613,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2614,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2615,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2616,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2617,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2620,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2621,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2622,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2623,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2624,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2625,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2628,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2629,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2629,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2629,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2630,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2631,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2632,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2636,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 75
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2530
    functionDepth: 9
    functionLinenumber: 2530
    functionLinenumberEnd: 2639
    functionName: test_evbuffer_peek
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_ptr_set
    - evbuffer_peek
    - tt_iov_eq
    - evbuffer_add_buffer
    - evbuffer_new
    - tt_assert
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_peek(void *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2538
    functionDepth: 0
    functionLinenumber: 2538
    functionLinenumberEnd: 2541
    functionName: tt_iov_eq
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_iov_eq(v, s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:2659,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2670,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2672,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2673,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2674,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2675,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2677,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2677,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2678,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2679,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/test/regress_buffer.c:2680,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/test/regress_buffer.c:2681,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2693,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2696,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2697,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:2698,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2699,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2701,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:2704,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2705,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2706,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2707,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2708,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2709,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2711,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2712,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2713,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:2714,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:2718,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/test/regress_buffer.c:2720,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2721,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2724,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2726,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2726,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2727,1
    - Dst: evbuffer_write
      Src: /src/libevent/test/regress_buffer.c:2728,1
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:2729,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2730,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2733,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2733,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2735,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2738,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2739,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2740,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2741,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2742,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2743,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:2744,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2745,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:2747,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2749,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2750,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2750,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:2751,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2752,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2753,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2754,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2755,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2756,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2758,1
    - Dst: evbuffer_write
      Src: /src/libevent/test/regress_buffer.c:2759,1
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:2760,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2761,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2762,1
    - Dst: evbuffer_write_atmost
      Src: /src/libevent/test/regress_buffer.c:2763,1
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:2764,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2765,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2768,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2768,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2772,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2775,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2778,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:2781,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:2782,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 85
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2648
    functionDepth: 9
    functionLinenumber: 2648
    functionLinenumberEnd: 2784
    functionName: test_evbuffer_freeze
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_write
    - evbuffer_freeze
    - evbuffer_add_buffer
    - strlen
    - evbuffer_free
    - evbuffer_reserve_space
    - tt_str_op
    - evbuffer_remove
    - evbuffer_read
    - evbuffer_add_reference
    - regress_make_tmpfile
    - evbuffer_add
    - evbuffer_commit_space
    - evbuffer_remove_buffer
    - evbuffer_drain
    - unlink
    - evbuffer_readln
    - tt_assert
    - evbuffer_new
    - evbuffer_add_file
    - tt_skip
    - FREEZE_EQ
    - memset
    - evbuffer_prepend_buffer
    - free
    - evbuffer_write_atmost
    - evbuffer_add_printf
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_prepend
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_freeze(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - startcase
    - ','
    - endcase
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2691
    functionName: FREEZE_EQ
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEZE_EQ(a, startcase, endcase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2802,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2804,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2807,1
    - Dst: evbuffer_add_iovec
      Src: /src/libevent/test/regress_buffer.c:2812,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2814,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2814,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2815,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2815,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2820,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2821,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2821,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2822,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:2822,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2825,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2825,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2786
    functionDepth: 5
    functionLinenumber: 2786
    functionLinenumberEnd: 2830
    functionName: test_evbuffer_add_iovec
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_iovec
    - tt_assert
    - evbuffer_new
    - strlen
    - evbuffer_free
    - evbuffer_get_length
    - tt_int_op
    - memset
    - evbuffer_remove
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_iovec(void * ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2847,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2848,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2850,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2850,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2853,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2854,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2855,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2855,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2857,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2857,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2862,1
    - Dst: evbuffer_copyout
      Src: /src/libevent/test/regress_buffer.c:2862,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2863,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2863,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2866,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2867,1
    - Dst: evbuffer_copyout
      Src: /src/libevent/test/regress_buffer.c:2867,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2868,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2868,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2871,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2872,1
    - Dst: evbuffer_copyout
      Src: /src/libevent/test/regress_buffer.c:2872,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2873,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2873,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2876,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2876,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2880,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2881,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2882,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2882,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2883,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2883,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2886,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2887,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2887,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2888,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2888,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2891,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2892,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2892,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2893,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2893,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2896,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2897,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2897,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2898,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2898,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2901,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2902,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2902,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2903,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2903,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2906,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2906,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2832
    functionDepth: 7
    functionLinenumber: 2832
    functionLinenumberEnd: 2911
    functionName: test_evbuffer_copyout
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - evbuffer_ptr_set
    - evbuffer_copyout
    - tt_assert
    - evbuffer_new
    - evbuffer_add
    - memcmp
    - evbuffer_copyout_from
    - strlen
    - evbuffer_free
    - evbuffer_get_length
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_copyout(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2913
    functionDepth: 0
    functionLinenumber: 2913
    functionLinenumberEnd: 2917
    functionName: setup_passthrough
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      setup_passthrough(const struct testcase_t *testcase)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2923
    functionName: cleanup_passthrough
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cleanup_passthrough(const struct testcase_t *testcase, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: E
    functionSourceFile: /src/libevent/test/print-winsock-errors.c
    functionUses: 115
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/print-winsock-errors.c:19,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/print-winsock-errors.c:22,1
    - Dst: printf
      Src: /src/libevent/test/print-winsock-errors.c:25,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:26,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:27,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:28,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:29,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:30,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:31,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:32,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:33,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:34,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:35,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:36,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:37,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:38,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:39,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:40,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:41,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:42,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:43,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:44,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:45,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:46,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:47,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:48,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:49,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:50,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:51,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:52,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:53,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:54,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:55,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:56,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:57,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:58,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:59,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:60,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:61,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:62,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:63,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:64,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:65,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:66,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:67,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:68,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:69,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/test/print-winsock-errors.c:74,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/print-winsock-errors.c:75,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/print-winsock-errors.c:79,1
    - Dst: printf
      Src: /src/libevent/test/print-winsock-errors.c:81,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/print-winsock-errors.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 13
    functionDepth: 10
    functionLinenumber: 13
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/libevent/test/print-winsock-errors.c
    functionUses: 1
    functionsReached:
    - printf
    - E
    - evutil_socket_error_to_string
    - evutil_secure_rng_get_bytes
    - evthread_use_windows_threads
    - libevent_global_shutdown
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/libevent/test/test-weof.c:65,1
    - Dst: strlen
      Src: /src/libevent/test/test-weof.c:65,1
    - Dst: printf
      Src: /src/libevent/test/test-weof.c:67,1
    - Dst: event_add
      Src: /src/libevent/test/test-weof.c:72,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/test-weof.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: write_cb
    functionSourceFile: /src/libevent/test/test-weof.c
    functionUses: 1
    functionsReached:
    - printf
    - evutil_closesocket
    - strlen
    - event_add
    - send
    linkageType: ''
    returnType: void
    signature: void write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-weof.c:89,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-weof.c:91,1
    - Dst: signal
      Src: /src/libevent/test/test-weof.c:95,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-weof.c:99,1
    - Dst: event_init
      Src: /src/libevent/test/test-weof.c:103,1
    - Dst: event_set
      Src: /src/libevent/test/test-weof.c:106,1
    - Dst: event_add
      Src: /src/libevent/test/test-weof.c:108,1
    - Dst: event_dispatch
      Src: /src/libevent/test/test-weof.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/libevent/test/test-weof.c
    functionUses: 1
    functionsReached:
    - event_set
    - MAKEWORD
    - event_add
    - event_init
    - event_dispatch
    - signal
    - WSAStartup
    - evutil_socketpair
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThread
      Src: /src/libevent/test/test-changelist.c:70,1
    - Dst: GetThreadTimes
      Src: /src/libevent/test/test-changelist.c:71,1
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:73,1
    - Dst: clock
      Src: /src/libevent/test/test-changelist.c:75,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-changelist.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct cpu_usage_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: start_cpu_usage_timer
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - printf
    - evutil_gettimeofday
    - clock
    - GetThreadTimes
    - GetCurrentThread
    linkageType: ''
    returnType: void
    signature: void start_cpu_usage_timer(struct cpu_usage_timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: filetime_to_100nsec
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_int64_t
    signature: ev_int64_t filetime_to_100nsec(const FILETIME *ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filetime_to_100nsec
      Src: /src/libevent/test/test-changelist.c:95,1
    - Dst: filetime_to_100nsec
      Src: /src/libevent/test/test-changelist.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ftStart
    - ftEnd
    argTypes:
    - FILETIME*
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: filetime_diff
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - filetime_to_100nsec
    linkageType: ''
    returnType: double
    signature: double filetime_diff(const FILETIME *ftStart, const FILETIME *ftEnd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetThreadTimes
      Src: /src/libevent/test/test-changelist.c:118,1
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:120,1
    - Dst: filetime_diff
      Src: /src/libevent/test/test-changelist.c:121,1
    - Dst: filetime_diff
      Src: /src/libevent/test/test-changelist.c:122,1
    - Dst: clock
      Src: /src/libevent/test/test-changelist.c:125,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-changelist.c:128,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/test-changelist.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - timer
    - secElapsedOut
    - secUsedOut
    - usageOut
    argTypes:
    - struct cpu_usage_timer*
    - double*
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 135
    functionName: get_cpu_usage
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - printf
    - evutil_gettimeofday
    - filetime_diff
    - evutil_timersub
    - clock
    - GetThreadTimes
    linkageType: ''
    returnType: void
    signature: "void get_cpu_usage(struct cpu_usage_timer *timer, double *secElapsedOut,\n
      \   double *secUsedOut, double *usageOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:140,1
    - Dst: event_del
      Src: /src/libevent/test/test-changelist.c:143,1
    - Dst: event_add
      Src: /src/libevent/test/test-changelist.c:146,1
    - Dst: event_del
      Src: /src/libevent/test/test-changelist.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: write_cb
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 1
    functionsReached:
    - printf
    - event_add
    - event_del
    linkageType: ''
    returnType: void
    signature: void write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:156,1
    - Dst: event_del
      Src: /src/libevent/test/test-changelist.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: timeout_cb
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - printf
    - event_del
    linkageType: ''
    returnType: void
    signature: void timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-changelist.c:178,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-changelist.c:180,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-changelist.c:182,1
    - Dst: event_base_new
      Src: /src/libevent/test/test-changelist.c:186,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-changelist.c:190,1
    - Dst: perror
      Src: /src/libevent/test/test-changelist.c:192,1
    - Dst: event_new
      Src: /src/libevent/test/test-changelist.c:196,1
    - Dst: perror
      Src: /src/libevent/test/test-changelist.c:198,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-changelist.c:204,1
    - Dst: event_add
      Src: /src/libevent/test/test-changelist.c:206,1
    - Dst: start_cpu_usage_timer
      Src: /src/libevent/test/test-changelist.c:208,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-changelist.c:210,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:212,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:213,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-changelist.c:214,1
    - Dst: get_cpu_usage
      Src: /src/libevent/test/test-changelist.c:216,1
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:221,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:232,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:234,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/test-changelist.c:236,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/test-changelist.c:238,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-changelist.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 242
    functionName: main
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 1
    functionsReached:
    - printf
    - event_base_dispatch
    - MAKEWORD
    - event_base_free
    - start_cpu_usage_timer
    - event_add
    - evutil_closesocket
    - perror
    - evtimer_new
    - get_cpu_usage
    - event_free
    - WSAStartup
    - evutil_socketpair
    - event_base_new
    - event_new
    - evtimer_add
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_et.c:57,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:57,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_et.c:58,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:58,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_et.c:59,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: base_supports_et
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - event_base_get_method
    - strcmp
    linkageType: ''
    returnType: int
    signature: int base_supports_et(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/regress_et.c:68,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: read_cb
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - event_del
    - recv
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:97,1
    - Dst: send
      Src: /src/libevent/test/regress_et.c:97,1
    - Dst: strlen
      Src: /src/libevent/test/regress_et.c:97,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:98,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_et.c:98,1
    - Dst: base_supports_et
      Src: /src/libevent/test/regress_et.c:100,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_et.c:101,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:102,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:107,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:108,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:108,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:117,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:117,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:118,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:118,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:121,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:122,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:124,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:125,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:130,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 133
    functionName: test_edgetriggered
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - event_base_get_method
    - tt_assert
    - base_supports_et
    - strlen
    - event_free
    - event_del
    - TT_BLATHER
    - event_base_loop
    - event_add
    - shutdown
    - tt_int_op
    - send
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_edgetriggered(void *data_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tt_skip
      Src: /src/libevent/test/regress_et.c:144,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_et.c:148,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_et.c:150,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:153,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:154,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:155,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:156,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:159,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:160,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:160,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:161,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:161,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:162,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:162,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:164,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:164,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:166,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:166,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:167,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:167,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:168,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:168,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:169,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:169,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:173,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:175,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_et.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 178
    functionName: test_edgetriggered_mix_error
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - event_enable_debug_mode
    - tt_assert
    - tt_skip
    - event_base_free
    - event_pending
    - event_free
    - event_del
    - event_add
    - tt_int_op
    - event_base_new
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_edgetriggered_mix_error(void *data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: read_notification_cb
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_notification_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: write_notification_cb
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_notification_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: base_supports_et
      Src: /src/libevent/test/regress_et.c:214,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_et.c:215,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:225,1
    - Dst: send
      Src: /src/libevent/test/regress_et.c:225,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:227,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:229,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:231,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:232,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:234,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:235,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:236,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:237,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:239,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:241,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:242,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:244,1
    - Dst: close
      Src: /src/libevent/test/regress_et.c:248,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:252,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:253,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:254,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:255,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:259,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 204
    functionDepth: 6
    functionLinenumber: 204
    functionLinenumberEnd: 262
    functionName: test_edge_triggered_multiple_events
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - base_supports_et
    - tt_skip
    - event_free
    - event_del
    - close
    - event_add
    - event_base_loop
    - tt_int_op
    - send
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_edge_triggered_multiple_events(void *data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: htonll
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ntohll
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohll(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_ws.c:83,1
    - Dst: exit
      Src: /src/libevent/test/regress_ws.c:84,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_ws.c:88,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:89,1
    - Dst: evws_send_text
      Src: /src/libevent/test/regress_ws.c:92,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:94,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:96,1
    - Dst: evws_send_binary
      Src: /src/libevent/test/regress_ws.c:97,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:99,1
    - Dst: evws_close
      Src: /src/libevent/test/regress_ws.c:100,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_ws.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - evws
    - type
    - data
    - len
    - arg
    argTypes:
    - struct evws_connection*
    - int
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 106
    functionName: on_ws_msg_cb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - fprintf
    - event_base_loopexit
    - evws_close
    - snprintf
    - exit
    - evws_send_text
    - evws_send_binary
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void on_ws_msg_cb(struct evws_connection *evws, int type, const unsigned
      char *data,\n\tsize_t len, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_ws.c:114,1
    - Dst: exit
      Src: /src/libevent/test/regress_ws.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - evws
    - arg
    argTypes:
    - struct evws_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: on_ws_close_cb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_ws_close_cb(struct evws_connection *evws, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evws_new_session
      Src: /src/libevent/test/regress_ws.c:126,1
    - Dst: evws_connection_set_closecb
      Src: /src/libevent/test/regress_ws.c:131,1
    - Dst: evws_send_text
      Src: /src/libevent/test/regress_ws.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: http_on_ws_cb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - evws_new_session
    - evws_connection_set_closecb
    - evws_send_text
    linkageType: ''
    returnType: void
    signature: void http_on_ws_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_ws.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: http_ws_errorcb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_ws_errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ws.c:154,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_ws.c:157,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_ws.c:174,1
    - Dst: ntohll
      Src: /src/libevent/test/regress_ws.c:181,1
    - Dst: calloc
      Src: /src/libevent/test/regress_ws.c:195,1
    - Dst: malloc
      Src: /src/libevent/test/regress_ws.c:198,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_ws.c:200,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_ws.c:202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - buf
    - out_len
    - is_text_type
    argTypes:
    - struct evbuffer*
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 204
    functionName: receive_ws_msg
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    - evbuffer_get_length
    - evbuffer_drain
    - ntohs
    - evbuffer_pullup
    - calloc
    - ntohll
    linkageType: ''
    returnType: char
    signature: 'char *

      receive_ws_msg(struct evbuffer *buf, size_t *out_len, bool *is_text_type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/test/regress_ws.c:231,1
    - Dst: htonll
      Src: /src/libevent/test/regress_ws.c:234,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:237,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:238,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:241,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:243,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:245,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - buf
    - msg
    - len
    - options
    argTypes:
    - struct evbuffer*
    - char*
    - size_t
    - enum WSOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 212
    functionDepth: 7
    functionLinenumber: 212
    functionLinenumberEnd: 251
    functionName: send_ws_msg
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - htonll
    - evbuffer_add
    - htons
    linkageType: ''
    returnType: void
    signature: "void send_ws_msg(\n\tstruct evbuffer *buf, const char *msg, size_t
      len, enum WSOptions options)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ws.c:256,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:257,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ws.c:259,1
    - Dst: receive_ws_msg
      Src: /src/libevent/test/regress_ws.c:264,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:267,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:268,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:268,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:269,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:270,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:272,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:273,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:273,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_ws.c:279,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:280,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:281,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 253
    functionDepth: 8
    functionLinenumber: 253
    functionLinenumberEnd: 290
    functionName: http_ws_readcb_phase2
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - receive_ws_msg
    - free
    - memcmp
    - bufferevent_get_input
    - strlen
    - send_ws_msg
    - evbuffer_get_length
    - bufferevent_get_output
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_ws_readcb_phase2(struct bufferevent *bev, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ws.c:295,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:296,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_ws.c:300,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_ws.c:302,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:302,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:304,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:307,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:308,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ws.c:309,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:311,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:311,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:312,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:312,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:313,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:313,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ws.c:315,1
    - Dst: http_ws_readcb_phase2
      Src: /src/libevent/test/regress_ws.c:316,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 292
    functionDepth: 9
    functionLinenumber: 292
    functionLinenumberEnd: 323
    functionName: http_ws_readcb_hdr
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - free
    - evbuffer_readln
    - bufferevent_setcb
    - strncmp
    - bufferevent_get_input
    - strlen
    - send_ws_msg
    - evbuffer_get_length
    - http_ws_readcb_phase2
    - bufferevent_get_output
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_ws_readcb_hdr(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ws.c:328,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_ws.c:332,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_ws.c:333,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:333,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 6
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: http_ws_readcb_bad
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - free
    - evbuffer_readln
    - strncmp
    - bufferevent_get_input
    - strlen
    linkageType: ''
    returnType: void
    signature: void http_ws_readcb_bad(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_ws.c:348,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_ws.c:354,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_ws.c:355,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ws.c:356,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:358,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ws.c:360,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ws.c:366,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ws.c:367,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ws.c:369,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_ws.c:372,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_ws.c:373,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ws.c:374,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:376,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ws.c:378,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ws.c:386,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ws.c:387,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_ws.c:389,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ws.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - arg
    - conn_value
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 340
    functionDepth: 9
    functionLinenumber: 340
    functionLinenumberEnd: 393
    functionName: http_ws_test_with_connection
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - http_connect
    - bufferevent_get_output
    - evbuffer_add_printf
    - http_setup
    - evhttp_free
    - bufferevent_free
    - create_bev
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_ws_test_with_connection(void *arg, const char* conn_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_ws_test_with_connection
      Src: /src/libevent/test/regress_ws.c:398,1
    - Dst: http_ws_test_with_connection
      Src: /src/libevent/test/regress_ws.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 10
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: http_ws_test
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - http_ws_test_with_connection
    linkageType: ''
    returnType: void
    signature: void http_ws_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/bench_http.c:59,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/bench_http.c:61,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/bench_http.c:64,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/bench_http.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: http_basic_cb
    functionSourceFile: /src/libevent/test/bench_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_free
    - evhttp_send_reply
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_basic_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/bench_http.c:73,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/bench_http.c:75,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/bench_http.c:78,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/bench_http.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: http_ref_cb
    functionSourceFile: /src/libevent/test/bench_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - evbuffer_free
    - evhttp_send_reply
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_ref_cb(struct evhttp_request *req, void *arg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/bench_http.c:87,1
    - Dst: WSAStartup
      Src: /src/libevent/test/bench_http.c:98,1
    - Dst: signal
      Src: /src/libevent/test/bench_http.c:100,1
    - Dst: setbuf
      Src: /src/libevent/test/bench_http.c:104,1
    - Dst: setbuf
      Src: /src/libevent/test/bench_http.c:105,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:114,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:115,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:121,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:122,1
    - Dst: strtol
      Src: /src/libevent/test/bench_http.c:124,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:126,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:127,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:132,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:133,1
    - Dst: strtol
      Src: /src/libevent/test/bench_http.c:135,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:137,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:138,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/bench_http.c:145,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/bench_http.c:147,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:151,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:152,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/bench_http.c:156,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:158,1
    - Dst: evhttp_new
      Src: /src/libevent/test/bench_http.c:162,1
    - Dst: malloc
      Src: /src/libevent/test/bench_http.c:164,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:166,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:167,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/bench_http.c:174,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:175,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/bench_http.c:177,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:178,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:180,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/bench_http.c:182,1
    - Dst: evhttp_bind_socket
      Src: /src/libevent/test/bench_http.c:184,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/bench_http.c:189,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/bench_http.c:192,1
    - Dst: WSACleanup
      Src: /src/libevent/test/bench_http.c:195,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 200
    functionName: main
    functionSourceFile: /src/libevent/test/bench_http.c
    functionUses: 1
    functionsReached:
    - fprintf
    - strtol
    - evhttp_set_cb
    - evhttp_new
    - event_base_dispatch
    - WSACleanup
    - malloc
    - event_base_loopexit
    - setbuf
    - exit
    - evthread_use_windows_threads
    - signal
    - event_base_new_with_config
    - event_config_set_flag
    - event_config_new
    - WSAStartup
    - evhttp_bind_socket
    - event_base_get_method
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: THREAD_RETURN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_RETURN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: THREAD_SELF
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_SELF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - threadvar
    - ','
    - fn
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: THREAD_START
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_START(threadvar, fn, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - th
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: THREAD_JOIN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_JOIN(th)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: THREAD_RETURN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_RETURN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: THREAD_SELF
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_SELF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - threadvar
    - ','
    - fn
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: THREAD_START
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_START(threadvar, fn, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - th
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: THREAD_JOIN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_JOIN(th)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:141,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:141,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:142,1
    - Dst: bufferevent_setfd
      Src: /src/libevent/test/regress_ssl.c:142,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:144,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:144,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:146,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - bev
    - filter
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: bufferevent_ssl_check_fd
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - tt_fd_op
    - bufferevent_getfd
    - bufferevent_setfd
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_check_fd(struct bufferevent *bev, int filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:155,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_ssl.c:155,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:156,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_ssl.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: bufferevent_ssl_check_freed
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - event_pending
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_check_freed(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:165,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: free_on_cb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void free_on_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ssl.c:172,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_ssl.c:180,1
    - Dst: atoi
      Src: /src/libevent/test/regress_ssl.c:183,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_ssl.c:185,1
    - Dst: free
      Src: /src/libevent/test/regress_ssl.c:186,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:187,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:190,1
    - Dst: SSL_renegotiate
      Src: /src/libevent/test/regress_ssl.c:195,1
    - Dst: bufferevent_ssl_get_ssl
      Src: /src/libevent/test/regress_ssl.c:195,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:199,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:199,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:201,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 169
    functionDepth: 9
    functionLinenumber: 169
    functionLinenumberEnd: 205
    functionName: respond_to_number
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - free
    - atoi
    - evbuffer_readln
    - bufferevent_ssl_get_ssl
    - bufferevent_enable
    - bufferevent_get_input
    - TT_FAIL
    - evbuffer_add_printf
    - TT_BLATHER
    - bufferevent_free
    - bufferevent_get_output
    - SSL_renegotiate
    linkageType: ''
    returnType: void
    signature: void respond_to_number(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:210,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:211,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:213,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:214,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: done_writing_cb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - bufferevent_enable
    - evbuffer_get_length
    - TT_BLATHER
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void done_writing_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:226,1
    - Dst: bufferevent_ssl_get_ssl
      Src: /src/libevent/test/regress_ssl.c:230,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:231,1
    - Dst: SSL_get1_peer_certificate
      Src: /src/libevent/test/regress_ssl.c:238,1
    - Dst: SSL_get_peer_certificate
      Src: /src/libevent/test/regress_ssl.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:243,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:245,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_ssl.c:249,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:253,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:253,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:255,1
    - Dst: bufferevent_ssl_check_fd
      Src: /src/libevent/test/regress_ssl.c:258,1
    - Dst: bufferevent_ssl_check_freed
      Src: /src/libevent/test/regress_ssl.c:261,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:263,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:265,1
    - Dst: bufferevent_ssl_check_fd
      Src: /src/libevent/test/regress_ssl.c:268,1
    - Dst: bufferevent_ssl_check_freed
      Src: /src/libevent/test/regress_ssl.c:271,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:273,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:275,1
    - Dst: bufferevent_ssl_check_fd
      Src: /src/libevent/test/regress_ssl.c:278,1
    - Dst: bufferevent_ssl_check_freed
      Src: /src/libevent/test/regress_ssl.c:281,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:283,1
    - Dst: X509_free
      Src: /src/libevent/test/regress_ssl.c:288,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 289
    functionName: eventcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 6
    functionsReached:
    - tt_assert
    - bufferevent_ssl_check_fd
    - bufferevent_ssl_get_ssl
    - bufferevent_ssl_check_freed
    - event_base_loopexit
    - X509_free
    - SSL_get1_peer_certificate
    - SSL_get_peer_certificate
    - evbuffer_add_printf
    - TT_BLATHER
    - bufferevent_free
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:301,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:303,1
    - Dst: bufferevent_ssl_filter_new
      Src: /src/libevent/test/regress_ssl.c:306,1
    - Dst: bufferevent_ssl_filter_new
      Src: /src/libevent/test/regress_ssl.c:308,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:312,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:314,1
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_ssl.c:317,1
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_ssl.c:318,1
    - Dst: bufferevent_ssl_set_flags
      Src: /src/libevent/test/regress_ssl.c:321,1
    - Dst: bufferevent_ssl_set_flags
      Src: /src/libevent/test/regress_ssl.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 10
    argNames:
    - bev1_out
    - bev2_out
    - base
    - is_open
    - flags
    - ssl1
    - ssl2
    - fd_pair
    - underlying_pair
    - type
    argTypes:
    - struct bufferevent**
    - struct bufferevent**
    - struct event_base*
    - int
    - int
    - SSL*
    - SSL*
    - evutil_socket_t*
    - struct bufferevent**
    - enum regress_openssl_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 324
    functionName: open_ssl_bufevs
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_set_allow_dirty_shutdown
    - bufferevent_ssl_set_flags
    - bufferevent_ssl_filter_new
    - bufferevent_ssl_socket_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void open_ssl_bufevs(struct bufferevent **bev1_out, struct bufferevent
      **bev2_out,\n    struct event_base *base, int is_open, int flags, SSL *ssl1,
      SSL *ssl2,\n    evutil_socket_t *fd_pair, struct bufferevent **underlying_pair,\n
      \   enum regress_openssl_type type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:358,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:358,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:359,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:359,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_ssl.c:361,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_ssl.c:362,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:368,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_ssl.c:371,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_ssl.c:373,1
    - Dst: open_ssl_bufevs
      Src: /src/libevent/test/regress_ssl.c:377,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:381,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:381,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_ssl.c:383,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_ssl.c:383,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:390,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:394,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:395,1
    - Dst: open_ssl_bufevs
      Src: /src/libevent/test/regress_ssl.c:397,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:402,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:403,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:406,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:406,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:408,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:410,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:411,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:415,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:416,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:418,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:420,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:424,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:425,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/test/regress_ssl.c:427,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:430,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:430,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:432,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:434,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:435,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:437,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:438,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:439,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:441,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 71
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 326
    functionDepth: 9
    functionLinenumber: 326
    functionLinenumberEnd: 446
    functionName: regress_bufferevent_openssl
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - SSL_use_certificate
    - tt_ptr_op
    - tt_fd_op
    - bufferevent_get_output
    - get_ssl_ctx
    - bufferevent_enable
    - bufferevent_get_underlying
    - tt_assert
    - bufferevent_set_timeouts
    - bufferevent_getfd
    - bufferevent_socket_new
    - SSL_new
    - bufferevent_free
    - bufferevent_disable
    - evbuffer_add_printf
    - SSL_use_PrivateKey
    - tt_int_op
    - open_ssl_bufevs
    linkageType: ''
    returnType: void
    signature: void regress_bufferevent_openssl(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: acceptcb_deferred
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void acceptcb_deferred(evutil_socket_t fd, short events, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:461,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:461,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_ssl.c:465,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_ssl.c:466,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:468,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:471,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:473,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_ssl.c:478,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:480,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:482,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_ssl.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 490
    functionName: acceptcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_use_certificate
    - get_ssl_ctx
    - event_base_once
    - tt_assert
    - bufferevent_disable
    - bufferevent_enable
    - SSL_new
    - SSL_use_PrivateKey
    - evconnlistener_disable
    - bufferevent_ssl_socket_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void acceptcb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:517,1
    - Dst: htonl
      Src: /src/libevent/test/regress_ssl.c:519,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:521,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_ssl.c:524,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:528,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:529,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:529,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:531,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:531,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:532,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:534,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:538,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:540,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:543,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_ssl.c:543,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:543,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:545,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:546,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:548,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_ssl.c:549,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:553,1
    - Dst: BIO_setup
      Src: /src/libevent/test/regress_ssl.c:554,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:556,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:556,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:557,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:559,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:561,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:562,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_ssl.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 499
    functionDepth: 9
    functionLinenumber: 499
    functionLinenumberEnd: 565
    functionName: regress_bufferevent_openssl_connect
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evconnlistener_free
    - htonl
    - bufferevent_get_output
    - BIO_setup
    - get_ssl_ctx
    - evconnlistener_new_bind
    - bufferevent_enable
    - tt_assert
    - getsockname
    - bufferevent_getfd
    - SSL_new
    - evconnlistener_get_fd
    - bufferevent_socket_connect
    - memset
    - bufferevent_setcb
    - evbuffer_add_printf
    - tt_int_op
    - bufferevent_ssl_socket_new
    linkageType: ''
    returnType: void
    signature: void regress_bufferevent_openssl_connect(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ssl.c:583,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:584,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:585,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:589,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:591,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:592,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress_ssl.c:594,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/regress_ssl.c:594,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_ssl.c:598,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:601,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:606,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:607,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_ssl.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 579
    functionDepth: 7
    functionLinenumber: 579
    functionLinenumberEnd: 611
    functionName: wm_transfer
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - bufferevent_get_output
    - bufferevent_get_base
    - bufferevent_get_input
    - evbuffer_get_length
    - TT_BLATHER
    - evbuffer_drain
    - evbuffer_add_buffer_reference
    - event_base_loopbreak
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void wm_transfer(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 622
    functionName: wm_eventcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void wm_eventcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/regress_ssl.c:629,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:630,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:630,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_ssl.c:632,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_ssl.c:633,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:635,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:638,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:640,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_ssl.c:643,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:644,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:645,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_ssl.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 652
    functionName: wm_acceptcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_use_certificate
    - get_ssl_ctx
    - tt_assert
    - bufferevent_enable
    - SSL_new
    - bufferevent_setwatermark
    - TT_BLATHER
    - SSL_use_PrivateKey
    - evconnlistener_get_base
    - evconnlistener_disable
    - bufferevent_ssl_socket_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void wm_acceptcb(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:673,1
    - Dst: htonl
      Src: /src/libevent/test/regress_ssl.c:675,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:677,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:683,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:684,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_ssl.c:688,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_ssl.c:689,1
    - Dst: calloc
      Src: /src/libevent/test/regress_ssl.c:690,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:691,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ssl.c:692,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ssl.c:693,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:698,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_ssl.c:708,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:712,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:713,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:713,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:715,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:715,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:716,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_ssl.c:719,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:720,1
    - Dst: bufferevent_ssl_filter_new
      Src: /src/libevent/test/regress_ssl.c:721,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:724,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:729,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_ssl.c:735,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:736,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:738,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_ssl.c:738,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:738,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:741,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_ssl.c:741,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:742,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_ssl.c:742,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:742,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:743,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:743,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:745,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:747,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:748,1
    - Dst: free
      Src: /src/libevent/test/regress_ssl.c:751,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_ssl.c:752,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_ssl.c:753,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_ssl.c:754,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:755,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:756,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_ssl.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 58
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 653
    functionDepth: 7
    functionLinenumber: 653
    functionLinenumberEnd: 761
    functionName: regress_bufferevent_openssl_wm
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evconnlistener_free
    - htonl
    - evbuffer_free
    - TT_BLATHER
    - bufferevent_ssl_filter_new
    - bufferevent_get_output
    - get_ssl_ctx
    - evbuffer_add
    - evconnlistener_new_bind
    - bufferevent_enable
    - bufferevent_setwatermark
    - event_base_loop
    - evbuffer_new
    - tt_assert
    - getsockname
    - bufferevent_socket_new
    - SSL_new
    - evconnlistener_get_fd
    - bufferevent_socket_connect
    - evbuffer_add_buffer_reference
    - bufferevent_free
    - memset
    - bufferevent_setcb
    - calloc
    - free
    - tt_int_op
    - bufferevent_ssl_socket_new
    linkageType: ''
    returnType: void
    signature: void regress_bufferevent_openssl_wm(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/test-dumpevents.c:44,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/test-dumpevents.c:44,1
    - Dst: fprintf
      Src: /src/libevent/test/test-dumpevents.c:45,1
    - Dst: perror
      Src: /src/libevent/test/test-dumpevents.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: sock_perror
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 0
    functionsReached:
    - perror
    - evutil_socket_error_to_string
    - fprintf
    - EVUTIL_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: void sock_perror(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: callback1
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callback1(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: callback2
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callback2(evutil_socket_t fd, short events, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-dumpevents.c:85,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-dumpevents.c:87,1
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/test/test-dumpevents.c:96,1
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/test/test-dumpevents.c:97,1
    - Dst: sock_perror
      Src: /src/libevent/test/test-dumpevents.c:98,1
    - Dst: event_base_new
      Src: /src/libevent/test/test-dumpevents.c:102,1
    - Dst: fprintf
      Src: /src/libevent/test/test-dumpevents.c:103,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/test-dumpevents.c:107,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/test-dumpevents.c:108,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:110,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:111,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:112,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:113,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-dumpevents.c:116,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-dumpevents.c:117,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-dumpevents.c:118,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:119,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:120,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:121,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:124,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:125,1
    - Dst: evsignal_new
      Src: /src/libevent/test/test-dumpevents.c:128,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:130,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:131,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:132,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:133,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:135,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:136,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:137,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:138,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:139,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:140,1
    - Dst: event_active
      Src: /src/libevent/test/test-dumpevents.c:142,1
    - Dst: event_active
      Src: /src/libevent/test/test-dumpevents.c:143,1
    - Dst: event_active
      Src: /src/libevent/test/test-dumpevents.c:144,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:146,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-dumpevents.c:148,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:149,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:150,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:151,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:152,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:153,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:154,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:155,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:156,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:157,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:158,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:159,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:160,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:161,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:162,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:164,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:165,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:166,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:167,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:169,1
    - Dst: event_base_dump_events
      Src: /src/libevent/test/test-dumpevents.c:170,1
    - Dst: event_free
      Src: /src/libevent/test/test-dumpevents.c:173,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-dumpevents.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 178
    functionName: main
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 1
    functionsReached:
    - event_base_init_common_timeout
    - evutil_gettimeofday
    - fprintf
    - printf
    - sock_perror
    - evsignal_new
    - MAKEWORD
    - event_base_free
    - event_active
    - evtimer_new
    - evutil_make_internal_pipe_
    - puts
    - event_free
    - event_base_dump_events
    - WSAStartup
    - event_add
    - event_base_new
    - event_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:58,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:59,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:63,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:64,1
    - Dst: read
      Src: /src/libevent/test/test-kq-collision.c:67,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:69,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:70,1
    - Dst: strcmp
      Src: /src/libevent/test/test-kq-collision.c:73,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:74,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:75,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:77,1
    - Dst: assert
      Src: /src/libevent/test/test-kq-collision.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts:
    - condition: (read_called == 0)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/libevent/test/test-kq-collision.c
    constantsTouched: []
    func_position:
      end: 80
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 80
    functionName: read_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - printf
    - exit
    - assert
    - read
    - strcmp
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopcontinue
      Src: /src/libevent/test/test-kq-collision.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: trigger_kq
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - event_base_loopcontinue
    linkageType: ''
    returnType: void
    signature: 'void *

      trigger_kq(void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/libevent/test/test-kq-collision.c:101,1
    - Dst: pthread_join
      Src: /src/libevent/test/test-kq-collision.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: notify_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - pthread_create
    linkageType: ''
    returnType: void
    signature: void notify_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/test-kq-collision.c:110,1
    - Dst: strlen
      Src: /src/libevent/test/test-kq-collision.c:110,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:111,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:112,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: write_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 1
    functionsReached:
    - write
    - strlen
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void write_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/test-kq-collision.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sock
    - what
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: exit_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void exit_cb(int sock, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/libevent/test/test-kq-collision.c:137,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:139,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:144,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:145,1
    - Dst: dup2
      Src: /src/libevent/test/test-kq-collision.c:152,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:153,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:156,1
    - Dst: evthread_use_pthreads
      Src: /src/libevent/test/test-kq-collision.c:162,1
    - Dst: event_config_new
      Src: /src/libevent/test/test-kq-collision.c:164,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/test-kq-collision.c:165,1
    - Dst: strcmp
      Src: /src/libevent/test/test-kq-collision.c:167,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/test-kq-collision.c:168,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-kq-collision.c:170,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-kq-collision.c:171,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-kq-collision.c:174,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-kq-collision.c:177,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-kq-collision.c:178,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-kq-collision.c:181,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-kq-collision.c:182,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-kq-collision.c:185,1
    - Dst: event_new
      Src: /src/libevent/test/test-kq-collision.c:188,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-kq-collision.c:188,1
    - Dst: event_add
      Src: /src/libevent/test/test-kq-collision.c:189,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-kq-collision.c:190,1
    - Dst: assert
      Src: /src/libevent/test/test-kq-collision.c:193,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:196,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:197,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:198,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:199,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:200,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:201,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-kq-collision.c:202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (read_called == 1)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/libevent/test/test-kq-collision.c
    constantsTouched: []
    func_position:
      end: 204
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 204
    functionName: main
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 1
    functionsReached:
    - event_base_dispatch
    - event_free
    - pipe
    - event_new
    - evtimer_add
    - assert
    - close
    - event_config_free
    - event_add
    - event_self_cbarg
    - printf
    - dup2
    - event_base_new_with_config
    - event_get_supported_methods
    - event_config_avoid_method
    - event_base_free
    - evtimer_new
    - event_config_new
    - evthread_use_pthreads
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: test_weakrand
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_weakrand()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: BASIC
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASIC(name,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: LEGACY
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEGACY(name,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ai
    - ','
    - str
    - ','
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: test_ai_eq
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_ai_eq(ai, str, s, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tv1
    - ','
    - tv2
    - ','
    - diff
    - ','
    - tolerance
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: test_timeval_diff_leq
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_timeval_diff_leq(tv1, tv2, diff, tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tv1
    - ','
    - tv2
    - ','
    - diff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: test_timeval_diff_eq
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_timeval_diff_eq(tv1, tv2, diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:78,1
    - Dst: EVTHREAD_COND_BROADCAST
      Src: /src/libevent/test/regress_thread.c:79,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: wake_all_timeout
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVTHREAD_COND_BROADCAST
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void wake_all_timeout(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:88,1
    - Dst: EVTHREAD_COND_SIGNAL
      Src: /src/libevent/test/regress_thread.c:89,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: wake_one_timeout
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVLOCK_UNLOCK
    - EVTHREAD_COND_SIGNAL
    linkageType: ''
    returnType: void
    signature: void wake_one_timeout(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_thread.c:106,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_thread.c:107,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:108,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:109,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_thread.c:111,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_thread.c:114,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:118,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:121,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress_thread.c:121,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:123,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/test/regress_thread.c:123,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:124,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:126,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:128,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:132,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_thread.c:134,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:135,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_thread.c:137,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_thread.c:138,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (cw.lock)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/libevent/test/regress_thread.c
    - condition: (cw.cond)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libevent/test/regress_thread.c
    - condition: (EVTHREAD_COND_WAIT(cw.cond, cw.lock) == 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/libevent/test/regress_thread.c
    - condition: (evtimer_add(&ev, &tv) == 0)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libevent/test/regress_thread.c
    constantsTouched: []
    func_position:
      end: 141
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 141
    functionName: basic_thread
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_COND
    - EVLOCK_UNLOCK
    - EVTHREAD_FREE_COND
    - event_base_loopexit
    - evtimer_assign
    - EVLOCK_LOCK
    - EVTHREAD_FREE_LOCK
    - assert
    - evutil_timerclear
    - THREAD_RETURN
    - EVTHREAD_ALLOC_LOCK
    - EVTHREAD_COND_WAIT
    - evtimer_add
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN basic_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_thread.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: sigchld_cb
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void sigchld_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: notify_fd_cb
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void notify_fd_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:275,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_thread.c:277,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/test/regress_thread.c:280,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:282,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:284,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 289
    functionName: wait_for_condition
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    - THREAD_RETURN
    - EVTHREAD_COND_WAIT
    - EVTHREAD_COND_WAIT_TIMED
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN wait_for_condition(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_thread.c:311,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_thread.c:312,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:313,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:314,1
    - Dst: memset
      Src: /src/libevent/test/regress_thread.c:316,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_thread.c:321,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_thread.c:322,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_thread.c:324,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_thread.c:325,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:327,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_thread.c:331,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:335,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:335,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:336,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:336,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_thread.c:339,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_thread.c:343,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:348,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:349,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:355,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:357,1
    - Dst: evutil_timerisset
      Src: /src/libevent/test/regress_thread.c:358,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_thread.c:360,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress_thread.c:362,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress_thread.c:364,1
    - Dst: labs
      Src: /src/libevent/test/regress_thread.c:366,1
    - Dst: labs
      Src: /src/libevent/test/regress_thread.c:366,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:367,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:371,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_thread.c:376,1
    - Dst: evutil_timeradd
      Src: /src/libevent/test/regress_thread.c:379,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_thread.c:380,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:383,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:384,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_thread.c:387,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_thread.c:388,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 389
    functionName: thread_conditions_simple
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - labs
    - TT_BLATHER
    - evutil_timerisset
    - EVTHREAD_FREE_COND
    - test_timeval_diff_leq
    - evutil_timersub
    - TT_FAIL
    - EVTHREAD_FREE_LOCK
    - event_add
    - evutil_gettimeofday
    - THREAD_START
    - EVTHREAD_ALLOC_COND
    - tt_assert
    - memset
    - memcpy
    - timeval_msec_diff
    - THREAD_JOIN
    - evtimer_assign
    - evutil_timeradd
    - EVTHREAD_ALLOC_LOCK
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void thread_conditions_simple(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_thread.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 401
    functionName: SLEEP_MS
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void SLEEP_MS(int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: deferred_callback
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - SLEEP_MS
    linkageType: ''
    returnType: void
    signature: void deferred_callback(struct event_callback *cb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_thread.c:428,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/test/regress_thread.c:430,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:431,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 435
    functionName: load_deferred_queue
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - event_deferred_cb_init_
    - event_deferred_cb_schedule_
    - SLEEP_MS
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN load_deferred_queue(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: timer_callback
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void timer_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_thread.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 452
    functionName: start_threads_callback
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - THREAD_START
    linkageType: ''
    returnType: void
    signature: void start_threads_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/regress_thread.c:464,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:465,1
    - Dst: event_config_set_max_dispatch_interval
      Src: /src/libevent/test/regress_thread.c:466,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress_thread.c:468,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:469,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:474,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_thread.c:475,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_thread.c:477,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_thread.c:479,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_thread.c:481,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:482,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:485,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:489,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_thread.c:493,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_thread.c:495,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress_thread.c:497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 454
    functionDepth: 6
    functionLinenumber: 454
    functionLinenumberEnd: 498
    functionName: thread_deferred_cb_skew
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_dispatch
    - event_base_once
    - tt_assert
    - evutil_timersub
    - event_base_free
    - THREAD_JOIN
    - event_config_free
    - event_base_new_with_config
    - event_config_set_max_dispatch_interval
    - TT_BLATHER
    - event_config_new
    linkageType: ''
    returnType: void
    signature: void thread_deferred_cb_skew(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:506,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress_thread.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: note_time_cb
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void note_time_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:515,1
    - Dst: event_active
      Src: /src/libevent/test/regress_thread.c:516,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:517,1
    - Dst: event_active
      Src: /src/libevent/test/regress_thread.c:518,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:519,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:521,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:523,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:524,1
    - Dst: event_active
      Src: /src/libevent/test/regress_thread.c:525,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 528
    functionName: register_events_subthread
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - event_add
    - SLEEP_MS
    - event_active
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN register_events_subthread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_thread.c:539,1
    - Dst: event_assign
      Src: /src/libevent/test/regress_thread.c:541,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:545,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_thread.c:546,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_thread.c:547,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:548,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:549,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress_thread.c:549,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_thread.c:550,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_thread.c:554,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:556,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:558,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:559,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:560,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:561,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:562,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 530
    functionDepth: 6
    functionLinenumber: 530
    functionLinenumberEnd: 567
    functionName: thread_no_events
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - THREAD_START
    - test_timeval_diff_eq
    - tt_assert
    - event_assign
    - event_base_got_break
    - evutil_timersub
    - THREAD_JOIN
    - TT_BLATHER
    - event_base_loop
    - memset
    linkageType: ''
    returnType: void
    signature: void thread_no_events(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 572
    functionName: TEST
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(name, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: REPEAT_2
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_2(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: REPEAT_4
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_4(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: REPEAT_8
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_8(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: REPEAT_16
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_16(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: REPEAT_32
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_32(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: REPEAT_64
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_64(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: REPEAT_128
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_128(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: REPEAT_256
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_256(address)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:124,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:130,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:134,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_dns.c:146,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:148,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:150,1
    - Dst: strerror
      Src: /src/libevent/test/regress_dns.c:150,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:162,1
    - Dst: inet_ntoa
      Src: /src/libevent/test/regress_dns.c:162,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:170,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_dns.c:180,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:182,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 183
    functionName: dns_gethostbyname_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - printf
    - event_base_loopexit
    - event_loopexit
    - evutil_inet_ntop
    - strerror
    - TT_BLATHER
    - inet_ntoa
    linkageType: ''
    returnType: void
    signature: "void dns_gethostbyname_cb(int result, char type, int count, int ttl,\n
      \   void *addresses, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:189,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:190,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 10
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: dns_gethostbyname
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_resolve_ipv4
    - tt_int_op
    - event_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_gethostbyname(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_resolve_ipv6
      Src: /src/libevent/test/regress_dns.c:202,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:203,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:206,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 10
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: dns_gethostbyname6
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_skip
    - tt_int_op
    - event_dispatch
    - evdns_resolve_ipv6
    linkageType: ''
    returnType: void
    signature: void dns_gethostbyname6(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:219,1
    - Dst: evdns_resolve_reverse
      Src: /src/libevent/test/regress_dns.c:221,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:222,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: dns_gethostbyaddr
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - htonl
    - event_dispatch
    - evdns_resolve_reverse
    linkageType: ''
    returnType: void
    signature: void dns_gethostbyaddr(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:234,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:235,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:238,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:239,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:240,1
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/test/regress_dns.c:243,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:245,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:247,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:249,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:253,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: dns_resolve_reverse
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 1
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - event_base_free
    - htonl
    - evdns_base_free
    - evdns_base_resolve_reverse
    - tt_int_op
    - event_base_new
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_resolve_reverse(void *ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:275,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:278,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:279,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:285,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:287,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:293,1
    - Dst: evdns_server_request_add_ptr_reply
      Src: /src/libevent/test/regress_dns.c:294,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:300,1
    - Dst: evdns_server_request_add_ptr_reply
      Src: /src/libevent/test/regress_dns.c:301,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:308,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:309,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:313,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:318,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:320,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 323
    functionName: dns_server_request_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - printf
    - evutil_ascii_strcasecmp
    - evdns_server_request_add_ptr_reply
    - evdns_server_request_drop
    - htonl
    - evdns_server_request_add_aaaa_reply
    - evdns_server_request_respond
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void dns_server_request_cb(struct evdns_server_request *req, void *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:331,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:338,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:343,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:350,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:351,1
    - Dst: inet_ntoa
      Src: /src/libevent/test/regress_dns.c:352,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_dns.c:362,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_dns.c:364,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:365,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:375,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:377,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:383,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:385,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:394,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_dns.c:399,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 401
    functionName: dns_server_gethostbyname_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - printf
    - htonl
    - event_loopexit
    - memcmp
    - evutil_inet_ntop
    - inet_ntoa
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void dns_server_gethostbyname_cb(int result, char type, int count,
      int ttl,\n    void *addresses, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:418,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:421,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:423,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_dns.c:426,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:428,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:431,1
    - Dst: bind
      Src: /src/libevent/test/regress_dns.c:432,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:433,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_dns.c:436,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:437,1
    - Dst: evdns_add_server_port
      Src: /src/libevent/test/regress_dns.c:440,1
    - Dst: evdns_base_nameserver_sockaddr_add
      Src: /src/libevent/test/regress_dns.c:444,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:445,1
    - Dst: evdns_base_count_nameservers
      Src: /src/libevent/test/regress_dns.c:445,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:450,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:452,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:453,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:454,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:455,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:456,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_dns.c:457,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:459,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:460,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:464,1
    - Dst: evdns_base_resolve_ipv6
      Src: /src/libevent/test/regress_dns.c:466,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:468,1
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/test/regress_dns.c:469,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_dns.c:471,1
    - Dst: evdns_base_resolve_reverse_ipv6
      Src: /src/libevent/test/regress_dns.c:474,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:477,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:481,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:483,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:485,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:490,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:492,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 403
    functionDepth: 9
    functionLinenumber: 403
    functionLinenumberEnd: 495
    functionName: dns_server
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_cancel_request
    - evdns_close_server_port
    - htonl
    - evdns_add_server_port
    - evdns_base_nameserver_sockaddr_add
    - tt_mem_op
    - evdns_base_resolve_ipv4
    - evutil_closesocket
    - evutil_make_socket_nonblocking
    - tt_assert
    - socket
    - getsockname
    - evdns_base_get_nameserver_addr
    - evdns_base_free
    - memset
    - memcpy
    - evdns_base_new
    - tt_abort_perror
    - event_dispatch
    - evdns_base_resolve_reverse_ipv6
    - bind
    - evdns_base_resolve_ipv6
    - evdns_base_resolve_reverse
    - evdns_base_count_nameservers
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void dns_server(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_dns.c:528,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:535,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:536,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_dns.c:537,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:544,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 549
    functionName: generic_dns_callback
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_close_server_port
    - event_base_loopexit
    - strlen
    - ARRAY_SIZE
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void generic_dns_callback(int result, char type, int count, int ttl,
      void *addresses,\n    void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_search_test_impl
      Src: /src/libevent/test/regress_dns.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 683
    functionName: dns_search_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_search_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_search_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_search_test_impl
      Src: /src/libevent/test/regress_dns.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 684
    functionName: dns_search_lower_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_search_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_search_lower_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_dns.c:695,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:700,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:702,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:703,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:703,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 689
    functionDepth: 6
    functionLinenumber: 689
    functionLinenumberEnd: 710
    functionName: search_cancel_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_cancel_request
    - TT_BLATHER
    - TT_DIE
    - evdns_server_request_respond
    linkageType: ''
    returnType: void
    signature: void search_cancel_server_cb(struct evdns_server_request *req, void
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:723,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:725,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:726,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:728,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:729,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:731,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:731,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:733,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:734,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:735,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:736,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:742,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:744,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:746,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:750,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 712
    functionDepth: 9
    functionLinenumber: 712
    functionLinenumberEnd: 753
    functionName: dns_search_cancel_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_int_op
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - evutil_snprintf
    - evdns_base_search_add
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_search_cancel_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_dns.c:765,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:765,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_dns.c:770,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:775,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:777,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:780,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_dns.c:780,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:781,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:783,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:783,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_dns.c:786,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 755
    functionDepth: 6
    functionLinenumber: 755
    functionLinenumberEnd: 787
    functionName: fail_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evutil_ascii_strcasecmp
    - tt_assert
    - evutil_inet_pton
    - evdns_server_request_drop
    - event_base_loopexit
    - TT_DIE
    - evdns_server_request_respond
    - tt_want
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void fail_server_cb(struct evdns_server_request *req, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:802,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:804,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:805,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:807,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:808,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:810,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:810,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:811,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:811,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:812,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:812,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:813,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:813,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:815,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:821,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:823,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:825,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:826,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:827,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:827,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:832,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:832,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:833,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:833,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:834,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:836,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:842,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:845,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:848,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:849,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:852,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:853,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:854,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:855,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:856,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:856,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:860,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 2
    argNames:
    - arg
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 789
    functionDepth: 9
    functionLinenumber: 789
    functionLinenumberEnd: 863
    functionName: dns_retry_test_impl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - htonl
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - evdns_base_set_option
    - evutil_snprintf
    - tt_int_op
    - memset
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_retry_test_impl(void *arg, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_retry_test_impl
      Src: /src/libevent/test/regress_dns.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 864
    functionDepth: 10
    functionLinenumber: 864
    functionLinenumberEnd: 868
    functionName: dns_retry_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_retry_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_retry_test_impl
      Src: /src/libevent/test/regress_dns.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 869
    functionDepth: 10
    functionLinenumber: 869
    functionLinenumberEnd: 873
    functionName: dns_retry_disable_when_inactive_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_retry_disable_when_inactive_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:889,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:891,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:892,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:894,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:895,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:897,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:897,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:898,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:898,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:899,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:899,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:900,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:900,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:901,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:901,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:903,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:903,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:905,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:909,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:912,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:913,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:914,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_dns.c:915,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:918,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:921,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:923,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:924,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:925,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:926,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:926,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:930,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:930,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:931,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:931,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:932,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:932,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:933,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:934,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:938,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:940,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:941,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:942,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:943,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_dns.c:944,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:947,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:949,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:951,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:952,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:953,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:954,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:954,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:958,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 875
    functionDepth: 9
    functionLinenumber: 875
    functionLinenumberEnd: 961
    functionName: dns_probe_settings_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - test_timeval_diff_leq
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - htonl
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - evdns_base_set_option
    - evutil_snprintf
    - tt_int_op
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_probe_settings_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:989,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:991,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:992,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:994,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:995,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:996,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:998,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:999,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1001,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1001,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1002,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1002,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1003,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1003,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1004,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1004,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1006,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:1007,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1011,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1011,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1016,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1017,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1018,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1019,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1020,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1020,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1023,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1027,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1029,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1031,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - arg
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 978
    functionDepth: 9
    functionLinenumber: 978
    functionLinenumberEnd: 1032
    functionName: dns_reissue_test_impl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - htonl
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - evdns_base_set_option
    - evutil_snprintf
    - tt_int_op
    - memset
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_reissue_test_impl(void *arg, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_reissue_test_impl
      Src: /src/libevent/test/regress_dns.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1033
    functionDepth: 10
    functionLinenumber: 1033
    functionLinenumberEnd: 1037
    functionName: dns_reissue_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_reissue_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_reissue_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_reissue_test_impl
      Src: /src/libevent/test/regress_dns.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 10
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: dns_reissue_disable_when_inactive_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_reissue_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_reissue_disable_when_inactive_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/libevent/test/regress_dns.c:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1053
    functionName: dumb_bytes_fn
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: void
    signature: void dumb_bytes_fn(char *p, size_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:1070,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1072,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1077,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1079,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1080,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1082,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1082,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1083,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1083,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1084,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1084,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:1087,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1092,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1095,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1096,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1097,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1097,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1102,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1104,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - arg
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1056
    functionDepth: 9
    functionLinenumber: 1056
    functionLinenumberEnd: 1109
    functionName: dns_inflight_test_impl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - htonl
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - evdns_base_set_option
    - evutil_snprintf
    - tt_int_op
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_inflight_test_impl(void *arg, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_inflight_test_impl
      Src: /src/libevent/test/regress_dns.c:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1111
    functionDepth: 10
    functionLinenumber: 1111
    functionLinenumberEnd: 1115
    functionName: dns_inflight_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_inflight_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_inflight_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_inflight_test_impl
      Src: /src/libevent/test/regress_dns.c:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1117
    functionDepth: 10
    functionLinenumber: 1117
    functionLinenumberEnd: 1121
    functionName: dns_disable_when_inactive_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_inflight_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_disable_when_inactive_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:1133,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1134,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1137,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:1137,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1138,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1140,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1141,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1142,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1142,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1143,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1143,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:1145,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1149,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1151,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1153,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1154,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1155,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1156,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1160,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:1161,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1123
    functionDepth: 9
    functionLinenumber: 1123
    functionLinenumberEnd: 1164
    functionName: dns_disable_when_inactive_no_ns_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - regress_clean_dnsserver
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - event_base_free
    - tt_ptr_op
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - evdns_base_set_option
    - evutil_snprintf
    - tt_int_op
    - event_base_new
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_disable_when_inactive_no_ns_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libevent/test/regress_dns.c:1179,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1180,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1184,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1185,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1186,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1186,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1187,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1189,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1190,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1192,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1193,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1195,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1197,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1166
    functionDepth: 9
    functionLinenumber: 1166
    functionLinenumberEnd: 1203
    functionName: dns_initialize_nameservers_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - stat
    - tt_skip
    - evdns_base_get_nameserver_addr
    - evdns_base_free
    - tt_int_op
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_initialize_nameservers_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1216,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1217,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1219,1
    - Dst: load_nameservers_with_getadaptersaddresses
      Src: /src/libevent/test/regress_dns.c:1219,1
    - Dst: evdns_base_count_nameservers
      Src: /src/libevent/test/regress_dns.c:1220,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1221,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:1223,1
    - Dst: event_warn
      Src: /src/libevent/test/regress_dns.c:1225,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1226,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:1228,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1231,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1232,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1238,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1206
    functionDepth: 9
    functionLinenumber: 1206
    functionLinenumberEnd: 1243
    functionName: windows_dns_initialize_ipv6_nameservers_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_warn
    - socket
    - evdns_base_new
    - tt_skip
    - evutil_closesocket
    - evdns_base_get_nameserver_addr
    - evdns_base_free
    - TT_BLATHER
    - evdns_base_count_nameservers
    - tt_int_op
    - load_nameservers_with_getadaptersaddresses
    linkageType: ''
    returnType: void
    signature: void windows_dns_initialize_ipv6_nameservers_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1258,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_dns.c:1258,1
    - Dst: strlen
      Src: /src/libevent/test/regress_dns.c:1259,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1262,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1264,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1268,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1270,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:1270,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1274,1
    - Dst: unlink
      Src: /src/libevent/test/regress_dns.c:1276,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:1277,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1249
    functionDepth: 9
    functionLinenumber: 1249
    functionLinenumberEnd: 1280
    functionName: dns_initialize_inactive_one_nameserver_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    - regress_make_tmpfile
    - tt_assert
    - evdns_base_free
    - strlen
    - evutil_set_resolvconf_filename_
    - event_base_loop
    - tt_int_op
    - unlink
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_initialize_inactive_one_nameserver_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1295,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_dns.c:1295,1
    - Dst: strlen
      Src: /src/libevent/test/regress_dns.c:1296,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1299,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1301,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1303,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1305,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1307,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:1307,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1311,1
    - Dst: unlink
      Src: /src/libevent/test/regress_dns.c:1313,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:1314,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1286
    functionDepth: 9
    functionLinenumber: 1286
    functionLinenumberEnd: 1317
    functionName: dns_initialize_inactive_two_nameservers_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    - regress_make_tmpfile
    - tt_assert
    - evdns_base_free
    - strlen
    - evutil_set_resolvconf_filename_
    - event_base_loop
    - tt_int_op
    - unlink
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_initialize_inactive_two_nameservers_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libevent/test/regress_dns.c:1327,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1329,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1331,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1332,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1333,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1333,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1334,1
    - Dst: evdns_base_get_nameserver_fd
      Src: /src/libevent/test/regress_dns.c:1334,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/test/regress_dns.c:1340,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1342,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1343,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1343,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1344,1
    - Dst: evdns_base_get_nameserver_fd
      Src: /src/libevent/test/regress_dns.c:1344,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/test/regress_dns.c:1346,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1347,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1348,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1348,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1349,1
    - Dst: evdns_base_get_nameserver_fd
      Src: /src/libevent/test/regress_dns.c:1349,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1321
    functionDepth: 9
    functionLinenumber: 1321
    functionLinenumberEnd: 1354
    functionName: dns_nameservers_no_default_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_get_nameserver_addr
    - evdns_base_free
    - evdns_base_get_nameserver_fd
    - access
    - evdns_base_resolv_conf_parse
    - tt_int_op
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_nameservers_no_default_test(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_dns.c:1368,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1370,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1372,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1373,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/test/regress_dns.c:1375,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1376,1
    - Dst: close
      Src: /src/libevent/test/regress_dns.c:1380,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1382,1
    - Dst: unlink
      Src: /src/libevent/test/regress_dns.c:1384,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:1385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1356
    functionDepth: 9
    functionLinenumber: 1356
    functionLinenumberEnd: 1387
    functionName: dns_nameservers_no_nameservers_configured_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    - regress_make_tmpfile
    - tt_assert
    - tt_skip
    - evdns_base_free
    - close
    - evdns_base_resolv_conf_parse
    - tt_int_op
    - unlink
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_nameservers_no_nameservers_configured_test(void *arg)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1412,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1414,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1418,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1419,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1420,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1423,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1426,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1429,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1430,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:1438,1
    - Dst: evdns_server_request_add_cname_reply
      Src: /src/libevent/test/regress_dns.c:1442,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1444,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1447,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1448,1
    - Dst: evdns_server_request_add_cname_reply
      Src: /src/libevent/test/regress_dns.c:1452,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1454,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1456,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1458,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1459,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1462,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_dns.c:1464,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1466,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1468,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:1474,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1477,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_dns.c:1479,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1481,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1484,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1485,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1490,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1493,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:1500,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1505,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1508,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1514,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1517,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1520,1
    - Dst: TT_GRIPE
      Src: /src/libevent/test/regress_dns.c:1523,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1527,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:1528,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1530,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:1531,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 106
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1398
    functionDepth: 6
    functionLinenumber: 1398
    functionLinenumberEnd: 1533
    functionName: be_getaddrinfo_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_cname_reply
    - evutil_ascii_strcasecmp
    - evdns_server_request_drop
    - htonl
    - TT_FAIL
    - TT_BLATHER
    - evdns_server_request_add_aaaa_reply
    - evdns_server_request_respond
    - TT_GRIPE
    - memset
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void be_getaddrinfo_server_cb(struct evdns_server_request *req, void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:1545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - l
    - fd
    - s
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1547
    functionName: nil_accept_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: "void nil_accept_cb(struct evconnlistener *l, evutil_socket_t fd, struct
      sockaddr *s,\n    int socklen, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_dns.c:1562,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1566,1
    - Dst: bufferevent_socket_get_dns_error
      Src: /src/libevent/test/regress_dns.c:1571,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1575,1
    - Dst: evutil_gai_strerror
      Src: /src/libevent/test/regress_dns.c:1576,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1579,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:1587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1556
    functionDepth: 2
    functionLinenumber: 1556
    functionLinenumberEnd: 1590
    functionName: be_connect_hostname_event_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - evutil_gai_strerror
    - bufferevent_socket_get_dns_error
    - TT_FAIL
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void be_connect_hostname_event_cb(struct bufferevent *bev, short what,
      void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_connect_hostname_hints
      Src: /src/libevent/test/regress_dns.c:1596,1
    - Dst: bufferevent_socket_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - bev
    - dns
    - hints
    - host
    - port
    argTypes:
    - struct bufferevent*
    - struct evdns_base*
    - struct evutil_addrinfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1592
    functionDepth: 9
    functionLinenumber: 1592
    functionLinenumberEnd: 1599
    functionName: bev_connect_hostname
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_connect_hostname_hints
    - bufferevent_socket_connect_hostname
    linkageType: ''
    returnType: int
    signature: "int bev_connect_hostname(struct bufferevent *bev, struct evdns_base
      *dns,\n    struct evutil_addrinfo *hints, const char *host, int port)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:1604,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:1605,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:1608,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1621,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1632,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1634,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_dns.c:1636,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1640,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_dns.c:1641,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_dns.c:1642,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:1644,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1646,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1647,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1650,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1651,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1653,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1654,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:1658,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1661,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1662,1
    - Dst: close
      Src: /src/libevent/test/regress_dns.c:1662,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1664,1
    - Dst: setrlimit
      Src: /src/libevent/test/regress_dns.c:1664,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:1671,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1672,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_dns.c:1673,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1674,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_dns.c:1675,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1681,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1681,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1684,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1684,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1691,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1695,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1699,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1699,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1702,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1702,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1705,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1705,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1708,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:1710,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_dns.c:1710,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1711,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1713,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1717,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1721,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1722,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1723,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1724,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1725,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1732,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1735,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1739,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1740,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1744,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1746,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1748,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_dns.c:1752,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1754,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1756,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:1757,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_dns.c:1759,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 86
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1600
    functionDepth: 10
    functionLinenumber: 1600
    functionLinenumberEnd: 1761
    functionName: test_bufferevent_connect_hostname
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evconnlistener_free
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - htonl
    - ARRAY_SIZE
    - evutil_getaddrinfo
    - evutil_snprintf
    - regress_get_socket_port
    - evconnlistener_new_bind
    - bev_connect_hostname
    - close
    - event_base_get_method
    - tt_assert
    - socket
    - tt_skip
    - bufferevent_socket_new
    - evdns_base_free
    - evconnlistener_get_fd
    - bufferevent_free
    - memset
    - bufferevent_setcb
    - evdns_base_new
    - setrlimit
    - evdns_base_nameserver_ip_add
    - tt_int_op
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect_hostname(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:1778,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - err
    - res
    - ptr
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1771
    functionDepth: 2
    functionLinenumber: 1771
    functionLinenumberEnd: 1782
    functionName: gai_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void gai_cb(int err, struct evutil_addrinfo *res, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_getaddrinfo_cancel
      Src: /src/libevent/test/regress_dns.c:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1784
    functionDepth: 4
    functionLinenumber: 1784
    functionLinenumberEnd: 1789
    functionName: cancel_gai_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_getaddrinfo_cancel
    linkageType: ''
    returnType: void
    signature: void cancel_gai_cb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1806,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1807,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1808,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1810,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1811,1
    - Dst: evdns_base_load_hosts
      Src: /src/libevent/test/regress_dns.c:1814,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1816,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1816,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1817,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1817,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1823,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1826,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1827,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1829,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1831,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1832,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1833,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1836,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1840,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1843,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1844,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1846,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1847,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1848,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1851,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1852,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1855,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1857,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1858,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1859,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1860,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1861,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1862,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1866,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1867,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1869,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1871,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1872,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1873,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_dns.c:1874,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1875,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1876,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_dns.c:1877,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1878,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1879,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1880,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1884,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1885,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1889,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1891,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1892,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1893,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1895,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1896,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1897,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1899,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1900,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1901,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1902,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1906,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1907,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1910,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1912,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1913,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1914,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1916,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1917,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1918,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1920,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1921,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1922,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1923,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1927,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1928,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1931,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1933,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1934,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1935,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1937,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1938,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1939,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1941,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1942,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1943,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1944,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1948,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1949,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1952,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1954,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1955,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1956,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1958,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1959,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1960,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:1965,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1967,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1968,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1970,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1971,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1973,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1978,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1980,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1983,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1985,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1989,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1991,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1996,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1998,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2003,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2005,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2009,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2011,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2016,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2018,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2023,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2025,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2030,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2032,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2037,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2039,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2045,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2047,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2050,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2052,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_dns.c:2057,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2065,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2067,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2078,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2081,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2082,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2083,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2084,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2085,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2086,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2087,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2088,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2089,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2090,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2091,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_dns.c:2092,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2095,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2096,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2097,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2098,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2099,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2103,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2104,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2105,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2106,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2109,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2110,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2111,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2112,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2115,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2116,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2117,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2118,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2121,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2122,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2125,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2126,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2129,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2130,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2131,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2132,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2135,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2136,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2139,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2140,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2141,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2143,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2145,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2145,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2146,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2148,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2150,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2150,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2153,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2154,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2155,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2156,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2159,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2160,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2163,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2164,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2165,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2166,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_dns.c:2167,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2174,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2178,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2180,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2185,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2187,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2194,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2196,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2197,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2198,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2199,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2204,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2206,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2208,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2210,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2211,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2215,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2217,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2219,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2220,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2221,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2222,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2226,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2228,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2230,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2231,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2232,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2233,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2237,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2239,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2243,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2245,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2249,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2251,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2255,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2257,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2261,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2263,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2268,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2270,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2273,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2275,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2281,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2283,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2285,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2286,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2287,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2288,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_dns.c:2289,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2292,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2296,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:2297,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2299,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:2301,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2303,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2306,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2308,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 325
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 1791
    functionDepth: 10
    functionLinenumber: 1791
    functionLinenumberEnd: 2309
    functionName: test_getaddrinfo_async
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - tt_ptr_op
    - evutil_freeaddrinfo
    - ARRAY_SIZE
    - TT_BLATHER
    - evdns_base_set_option
    - evutil_snprintf
    - tt_str_op
    - evdns_base_load_hosts
    - ai_find_by_family
    - ai_find_by_protocol
    - tt_assert
    - test_ai_eq
    - evdns_base_free
    - evdns_getaddrinfo
    - memset
    - evdns_base_new
    - event_base_once
    - evdns_base_nameserver_ip_add
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_getaddrinfo_async(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2330,1
    - Dst: evdns_getaddrinfo_cancel
      Src: /src/libevent/test/regress_dns.c:2332,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:2335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2325
    functionDepth: 4
    functionLinenumber: 2325
    functionLinenumberEnd: 2336
    functionName: gaic_cancel_request_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - evdns_getaddrinfo_cancel
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void gaic_cancel_request_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2342,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:2343,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:2345,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2338
    functionDepth: 6
    functionLinenumber: 2338
    functionLinenumberEnd: 2349
    functionName: gaic_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_respond
    - tt_assert
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void gaic_server_cb(struct evdns_server_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2357,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2360,1
    - Dst: event_del
      Src: /src/libevent/test/regress_dns.c:2362,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2364,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:2365,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:2370,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2371,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:2375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - result
    - res
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2352
    functionDepth: 4
    functionLinenumber: 2352
    functionLinenumberEnd: 2376
    functionName: gaic_getaddrinfo_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    - tt_assert
    - event_base_loopexit
    - evutil_freeaddrinfo
    - event_del
    - TT_BLATHER
    - memset
    linkageType: ''
    returnType: void
    signature: void gaic_getaddrinfo_cb(int result, struct evutil_addrinfo *res, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/regress_dns.c:2381,1
    - Dst: event_assign
      Src: /src/libevent/test/regress_dns.c:2395,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_dns.c:2397,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2398,1
    - Dst: event_add
      Src: /src/libevent/test/regress_dns.c:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - base
    - dns_base
    - i
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2378
    functionDepth: 10
    functionLinenumber: 2378
    functionLinenumberEnd: 2403
    functionName: gaic_launch
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_assign
    - snprintf
    - event_add
    - evdns_getaddrinfo
    - calloc
    linkageType: ''
    returnType: void
    signature: void gaic_launch(struct event_base *base, struct evdns_base *dns_base,
      unsigned i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_dns.c:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2417
    functionName: cnt_malloc
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      cnt_malloc(size_t sz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libevent/test/regress_dns.c:2426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - old
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2427
    functionName: cnt_realloc
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      cnt_realloc(void *old, size_t sz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:2433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2429
    functionDepth: 0
    functionLinenumber: 2429
    functionLinenumberEnd: 2434
    functionName: cnt_free
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cnt_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_dns.c:2453,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_dns.c:2455,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_dns.c:2457,1
    - Dst: calloc
      Src: /src/libevent/test/regress_dns.c:2460,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:2461,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2462,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2443
    functionDepth: 9
    functionLinenumber: 2443
    functionLinenumberEnd: 2467
    functionName: testleak_setup
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_set_mem_functions
    - event_enable_debug_mode
    - evdns_base_resolve_ipv4
    - libevent_global_shutdown
    - event_base_new
    - calloc
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: 'void *

      testleak_setup(const struct testcase_t *testcase)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2474,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2476,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_dns.c:2478,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2479,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2485,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2487,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:2488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - testcase
    - env_
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2469
    functionDepth: 6
    functionLinenumber: 2469
    functionLinenumberEnd: 2491
    functionName: testleak_cleanup
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    - tt_assert
    - event_base_free
    - evdns_base_free
    - libevent_global_shutdown
    - tt_int_op
    linkageType: ''
    returnType: int
    signature: int testleak_cleanup(const struct testcase_t *testcase, void *env_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:2503,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2507,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2511,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - env_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2497
    functionDepth: 6
    functionLinenumber: 2497
    functionLinenumberEnd: 2515
    functionName: test_dbg_leak_cancel
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - event_base_loop
    - evdns_cancel_request
    - evdns_base_free
    linkageType: ''
    returnType: void
    signature: void test_dbg_leak_cancel(void *env_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:2523,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2524,1
    - Dst: evdns_base_resume
      Src: /src/libevent/test/regress_dns.c:2524,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2527,1
    - Dst: evdns_base_resume
      Src: /src/libevent/test/regress_dns.c:2527,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2530,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2541,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2543,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - env_
    - cancel
    - send_err_shutdown
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2517
    functionDepth: 6
    functionLinenumber: 2517
    functionLinenumberEnd: 2548
    functionName: dbg_leak_resume
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_cancel_request
    - event_base_free
    - evdns_base_free
    - event_base_loop
    - evdns_base_resume
    linkageType: ''
    returnType: void
    signature: void dbg_leak_resume(void *env_, int cancel, int send_err_shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - cancel
    - ','
    - send_err_shutdown
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2550
    functionDepth: 0
    functionLinenumber: 2550
    functionLinenumberEnd: 2556
    functionName: IMPL_DBG_LEAK_RESUME
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_DBG_LEAK_RESUME(name, cancel, send_err_shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2572,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2576,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - env_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2561
    functionDepth: 6
    functionLinenumber: 2561
    functionLinenumberEnd: 2579
    functionName: test_dbg_leak_shutdown
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - event_base_loop
    - evdns_base_free
    linkageType: ''
    returnType: void
    signature: void test_dbg_leak_shutdown(void *env_)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:2594,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2596,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2598,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:2601,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:2602,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:2603,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_dns.c:2605,1
    - Dst: bind
      Src: /src/libevent/test/regress_dns.c:2606,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:2607,1
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/test/regress_dns.c:2609,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2612,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_dns.c:2614,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:2615,1
    - Dst: evdns_base_nameserver_sockaddr_add
      Src: /src/libevent/test/regress_dns.c:2617,1
    - Dst: gaic_launch
      Src: /src/libevent/test/regress_dns.c:2621,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2624,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2627,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2628,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2632,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2634,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2636,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:2638,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2582
    functionDepth: 11
    functionLinenumber: 2582
    functionLinenumberEnd: 2639
    functionName: test_getaddrinfo_async_cancel_stress
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - gaic_launch
    - tt_abort_perror
    - event_base_dispatch
    - evdns_close_server_port
    - socket
    - evdns_base_new
    - getsockname
    - htonl
    - evutil_make_socket_nonblocking
    - event_base_free
    - evdns_base_free
    - evutil_closesocket
    - evdns_add_server_port_with_base
    - bind
    - tt_int_op
    - memset
    - evdns_base_nameserver_sockaddr_add
    - event_base_new
    linkageType: ''
    returnType: void
    signature: void test_getaddrinfo_async_cancel_stress(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:2646,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:2655,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2657,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2659,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2661,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2662,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2663,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2663,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2666,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:2666,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2669,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2674,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2676,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2678,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2680,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2641
    functionDepth: 9
    functionLinenumber: 2641
    functionLinenumberEnd: 2684
    functionName: dns_client_fail_requests_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - strcmp
    - evdns_base_set_option
    - evutil_snprintf
    - tt_int_op
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_client_fail_requests_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_dns_callback
      Src: /src/libevent/test/regress_dns.c:2689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - err
    - res
    - ptr
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2686
    functionDepth: 6
    functionLinenumber: 2686
    functionLinenumberEnd: 2690
    functionName: getaddrinfo_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - generic_dns_callback
    linkageType: ''
    returnType: void
    signature: void getaddrinfo_cb(int err, struct evutil_addrinfo *res, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:2704,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2706,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2708,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2710,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2711,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2713,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2713,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2716,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2716,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2721,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2723,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2725,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2727,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2691
    functionDepth: 10
    functionLinenumber: 2691
    functionLinenumberEnd: 2731
    functionName: dns_client_fail_requests_getaddrinfo_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - evdns_base_nameserver_ip_add
    - evdns_getaddrinfo
    - evdns_base_free
    - evutil_snprintf
    - tt_int_op
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void dns_client_fail_requests_getaddrinfo_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2750,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_dns.c:2751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2746
    functionDepth: 6
    functionLinenumber: 2746
    functionLinenumberEnd: 2752
    functionName: race_base_run
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_loop
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN race_base_run(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:2759,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_dns.c:2760,1
    - Dst: EVTHREAD_COND_SIGNAL
      Src: /src/libevent/test/regress_dns.c:2762,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2763,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_dns.c:2764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2753
    functionDepth: 2
    functionLinenumber: 2753
    functionLinenumberEnd: 2765
    functionName: race_busywait_run
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - evdns_base_get_nameserver_addr
    - EVTHREAD_COND_SIGNAL
    - EVLOCK_LOCK
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN race_busywait_run(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_dns.c:2775,1
    - Dst: EVTHREAD_COND_SIGNAL
      Src: /src/libevent/test/regress_dns.c:2776,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - result
    - res
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2779
    functionName: race_gai_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVLOCK_UNLOCK
    - EVTHREAD_COND_SIGNAL
    linkageType: ''
    returnType: void
    signature: void race_gai_cb(int result, struct evutil_addrinfo *res, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_pthreads
      Src: /src/libevent/test/regress_dns.c:2796,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:2798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2799,1
    - Dst: evthread_make_base_notifiable
      Src: /src/libevent/test/regress_dns.c:2800,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_dns.c:2801,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:2803,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2805,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2807,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2809,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2810,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2811,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2811,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_dns.c:2815,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_dns.c:2816,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_dns.c:2817,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2818,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2819,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2820,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_dns.c:2825,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:2827,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_dns.c:2829,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_dns.c:2832,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2836,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2836,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_dns.c:2841,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_dns.c:2850,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2856,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_dns.c:2856,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2858,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2861,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2863,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2867,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_dns.c:2868,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_dns.c:2869,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_dns.c:2870,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2871,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress_dns.c:2872,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2780
    functionDepth: 10
    functionLinenumber: 2780
    functionLinenumberEnd: 2874
    functionName: getaddrinfo_race_gotresolve_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - EVLOCK_LOCK
    - ARRAY_SIZE
    - evutil_snprintf
    - EVTHREAD_FREE_COND
    - EVTHREAD_FREE_LOCK
    - evthread_make_base_notifiable
    - event_base_loopbreak
    - event_base_new
    - THREAD_START
    - EVTHREAD_ALLOC_COND
    - tt_int_op
    - tt_assert
    - evdns_base_free
    - evdns_getaddrinfo
    - evdns_base_new
    - evutil_usleep_
    - EVLOCK_UNLOCK
    - event_base_free
    - evdns_base_nameserver_ip_add
    - EVTHREAD_ALLOC_LOCK
    - EVTHREAD_COND_WAIT_TIMED
    - evthread_use_pthreads
    linkageType: ''
    returnType: void
    signature: void getaddrinfo_race_gotresolve_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2882,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2891,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2892,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2894,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:2894,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2895,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2897,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2897,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2900,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2902,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2904,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2905,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:2905,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2906,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2907,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2910,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2912,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2914,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2915,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2916,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2917,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2918,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2920,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2922,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2924,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2925,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:2925,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2926,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2927,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2930,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2932,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2934,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2935,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2936,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2937,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2938,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2940,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2942,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2944,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2945,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:2946,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2947,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2948,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2950,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2952,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2954,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2955,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:2956,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2957,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2958,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2962,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:2964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2877
    functionDepth: 9
    functionLinenumber: 2877
    functionLinenumberEnd: 2965
    functionName: test_tcp_resolve
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - REPEAT_256
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - REPEAT_64
    - assert_request_results
    - evutil_snprintf
    - regress_clean_dnsserver
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_tcp_resolve(void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2972,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2981,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2982,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2983,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:2983,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2984,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2985,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2985,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2986,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:2986,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2989,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2991,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2995,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2997,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:2998,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3000,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3001,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3005,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3006,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3022,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3024,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3024,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3025,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3027,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3028,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3028,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3029,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3031,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3035,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3037,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3037,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3039,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3040,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3047,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3056,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3063,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3064,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3066,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3066,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3067,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3067,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3068,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3070,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3070,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3072,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3074,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3077,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3079,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3083,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3085,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3094,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3101,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3102,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3104,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3105,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3108,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3108,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3110,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3112,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3115,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3117,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3121,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3123,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3140,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3140,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3141,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3142,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3143,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3144,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3144,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3147,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3149,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3150,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3151,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3153,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3153,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3155,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3157,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3158,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3158,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3161,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3163,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3164,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3165,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3167,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3167,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3169,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3171,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3172,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:3173,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3177,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3179,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3188,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3189,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3191,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3191,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3192,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3195,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3195,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3199,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3235,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3236,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3238,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3239,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3239,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3240,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3241,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3241,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3242,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3242,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3243,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3243,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3246,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3247,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3247,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3248,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3248,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3249,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3249,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3250,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3250,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3251,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3251,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3252,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3252,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3255,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3256,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3256,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3257,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3257,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3258,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3258,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3259,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3259,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3260,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3260,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3261,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3261,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3264,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3265,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3265,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3266,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3267,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3267,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3268,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3268,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3275,1
    - Dst: regress_get_tcp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3293,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3294,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3296,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3297,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3299,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3300,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3300,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3301,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3301,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3302,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3302,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3303,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3303,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3304,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3304,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3311,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3313,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3315,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3317,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3325,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3326,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3327,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3328,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 177
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 2967
    functionDepth: 9
    functionLinenumber: 2967
    functionLinenumberEnd: 3426
    functionName: test_tcp_resolve_pipeline
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evdns_close_server_port
    - REPEAT_256
    - regress_get_udp_dnsserver
    - ARRAY_SIZE
    - evdns_base_set_option
    - evdns_server_port_set_option
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - evutil_closesocket
    - DNS_LEGACY
    - tt_assert
    - evdns_base_free
    - assert_request_results
    - regress_clean_dnsserver
    - evdns_base_new
    - evdns_base_nameserver_ip_add
    - regress_dnsserver
    - REPEAT_64
    - regress_get_tcp_dnsserver
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_tcp_resolve_pipeline(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3022,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3024,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3024,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3025,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3027,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3028,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3028,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3029,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3031,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3035,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3037,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3037,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3039,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3040,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3047,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3009
    functionDepth: 9
    functionLinenumber: 3009
    functionLinenumberEnd: 3048
    functionName: test_tcp_resolve_many_clients
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - REPEAT_64
    - assert_request_results
    - evutil_snprintf
    - regress_clean_dnsserver
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_tcp_resolve_many_clients(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3056,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3063,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3064,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3066,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3066,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3067,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3067,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3068,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3070,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3070,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3072,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3074,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3077,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3079,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3083,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3050
    functionDepth: 9
    functionLinenumber: 3050
    functionLinenumberEnd: 3086
    functionName: test_tcp_timeout
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - evdns_base_set_option
    - evutil_snprintf
    - regress_clean_dnsserver
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_tcp_timeout(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3094,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3101,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3102,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3104,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3105,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3108,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3108,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3110,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3112,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3115,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3117,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3121,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3088
    functionDepth: 9
    functionLinenumber: 3088
    functionLinenumberEnd: 3124
    functionName: test_tcp_notimpl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - evutil_snprintf
    - regress_clean_dnsserver
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_tcp_notimpl(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3140,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3140,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3141,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3142,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3143,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3144,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3144,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3147,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3149,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3150,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3151,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3153,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3153,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3155,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3157,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3158,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3158,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3161,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3163,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3164,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3165,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3167,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3167,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3169,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3171,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3172,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:3173,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3177,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3127
    functionDepth: 9
    functionLinenumber: 3127
    functionLinenumberEnd: 3180
    functionName: test_edns
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evdns_base_resolve_ipv4
    - REPEAT_256
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - REPEAT_64
    - evdns_base_set_option
    - assert_request_results
    - evutil_snprintf
    - tt_int_op
    - regress_clean_dnsserver
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_edns(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3188,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3189,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3191,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3191,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3192,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3195,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3195,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3182
    functionDepth: 9
    functionLinenumber: 3182
    functionLinenumberEnd: 3200
    functionName: test_set_so_rcvbuf_so_sndbuf
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - evdns_base_set_option
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_set_so_rcvbuf_so_sndbuf(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3235,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3236,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3238,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3239,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3239,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3240,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3241,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3241,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3242,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3242,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3243,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3243,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3246,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3247,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3247,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3248,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3248,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3249,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3249,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3250,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3250,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3251,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3251,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3252,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3252,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3255,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3256,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3256,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3257,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3257,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3258,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3258,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3259,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3259,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3260,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3260,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3261,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3261,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3264,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3265,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3265,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3266,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3267,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3267,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3268,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3268,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3276
      start: 3202
    functionDepth: 9
    functionLinenumber: 3202
    functionLinenumberEnd: 3276
    functionName: test_set_option
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_free
    - ARRAY_SIZE
    - evdns_base_set_option
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_set_option(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_tcp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3293,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3294,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3296,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3297,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3299,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3300,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3300,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3301,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3301,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3302,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3302,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3303,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3303,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3304,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3304,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3311,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3313,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3315,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3278
    functionDepth: 6
    functionLinenumber: 3278
    functionLinenumberEnd: 3318
    functionName: test_set_server_option
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_close_server_port
    - regress_get_udp_dnsserver
    - evutil_closesocket
    - ARRAY_SIZE
    - regress_get_tcp_dnsserver
    - evdns_server_port_set_option
    linkageType: ''
    returnType: void
    signature: void test_set_server_option(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3320
    functionDepth: 0
    functionLinenumber: 3320
    functionLinenumberEnd: 3323
    functionName: DNS_LEGACY
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DNS_LEGACY(name, flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_listener.c:83,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_listener.c:84,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_listener.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: acceptcb
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    - evconnlistener_disable
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: "void acceptcb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_listener.c:107,1
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:111,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:113,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:116,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:118,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:119,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:121,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:123,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:123,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:124,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:124,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:125,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:125,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:125,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:127,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:127,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:127,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:129,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:130,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:134,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_listener.c:134,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:135,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_listener.c:135,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:136,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_listener.c:138,1
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/regress_listener.c:138,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_listener.c:139,1
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/regress_listener.c:139,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:142,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:143,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:144,1
    - Dst: Sleep
      Src: /src/libevent/test/regress_listener.c:147,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:149,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:151,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:152,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/test/regress_listener.c:156,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/test/regress_listener.c:158,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/test/regress_listener.c:160,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:162,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 165
    functionName: regress_pick_a_port
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - Sleep
    - EVUTIL_CLOSESOCKET
    - evconnlistener_free
    - tt_assert
    - evconnlistener_new_bind
    - strstr
    - getsockname
    - htonl
    - ntohl
    - tt_ptr_op
    - evutil_socket_connect_
    - evconnlistener_get_fd
    - evconnlistener_get_base
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void regress_pick_a_port(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_listener.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lis
    - data_
    argTypes:
    - struct evconnlistener*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: errorcb
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 5
    functionsReached:
    - evconnlistener_disable
    linkageType: ''
    returnType: void
    signature: void errorcb(struct evconnlistener *lis, void *data_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_listener.c:184,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:189,1
    - Dst: send
      Src: /src/libevent/test/regress_listener.c:189,1
    - Dst: evconnlistener_new
      Src: /src/libevent/test/regress_listener.c:192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:195,1
    - Dst: evconnlistener_set_error_cb
      Src: /src/libevent/test/regress_listener.c:197,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:199,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:201,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:202,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 207
    functionName: regress_listener_error
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evconnlistener_set_error_cb
    - event_base_dispatch
    - evconnlistener_free
    - tt_assert
    - strstr
    - evconnlistener_new
    - tt_int_op
    - send
    linkageType: ''
    returnType: void
    signature: void regress_listener_error(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_listener.c:215,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_listener.c:216,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: acceptcb_free
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    - evconnlistener_free
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: "void acceptcb_free(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:234,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:236,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:242,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:244,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:244,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:244,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:246,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 252
    functionName: regress_listener_close_accepted_fd
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - evconnlistener_new_bind
    - getsockname
    - htonl
    - evutil_socket_connect_
    - evconnlistener_get_fd
    - memset
    linkageType: ''
    returnType: void
    signature: void regress_listener_close_accepted_fd(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:267,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:269,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:273,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:275,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:277,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:277,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:277,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:280,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:281,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:283,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:285,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 254
    functionDepth: 5
    functionLinenumber: 254
    functionLinenumberEnd: 290
    functionName: regress_listener_immediate_close
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evconnlistener_free
    - tt_assert
    - evconnlistener_new_bind
    - getsockname
    - htonl
    - evutil_socket_connect_
    - evconnlistener_get_fd
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void regress_listener_immediate_close(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:302,1
    - Dst: send
      Src: /src/libevent/test/regress_listener.c:302,1
    - Dst: evconnlistener_new
      Src: /src/libevent/test/regress_listener.c:305,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:306,1
    - Dst: setrlimit
      Src: /src/libevent/test/regress_listener.c:312,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_listener.c:313,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_listener.c:317,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 324
    functionName: regress_listener_error_unlock
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evconnlistener_free
    - setrlimit
    - tt_assert
    - evconnlistener_new
    - TT_DIE
    - event_base_loop
    - tt_int_op
    - send
    linkageType: ''
    returnType: void
    signature: void regress_listener_error_unlock(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_listener.c:333,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_listener.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: disable_thread
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evconnlistener_disable
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN disable_thread(void * arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_listener.c:347,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_listener.c:352,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_listener.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 356
    functionName: acceptcb_for_thread_test
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - THREAD_START
    - evutil_closesocket
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: "void acceptcb_for_thread_test(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:371,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:373,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:377,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:380,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:382,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:382,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:382,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:385,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:385,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_listener.c:387,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_listener.c:389,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 358
    functionDepth: 6
    functionLinenumber: 358
    functionLinenumberEnd: 393
    functionName: regress_listener_disable_in_thread
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evconnlistener_free
    - tt_assert
    - evconnlistener_new_bind
    - getsockname
    - htonl
    - THREAD_JOIN
    - evutil_socket_connect_
    - evconnlistener_get_fd
    - event_base_loop
    - memset
    linkageType: ''
    returnType: void
    signature: void regress_listener_disable_in_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_listener.c:407,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_listener.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - listener
    - arg
    argTypes:
    - struct evconnlistener*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: errorcb_for_thread_test
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - THREAD_START
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void errorcb_for_thread_test(struct evconnlistener *listener, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: acceptcb_for_thread_test_error
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void acceptcb_for_thread_test_error(struct evconnlistener *listener,
      evutil_socket_t fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:429,1
    - Dst: send
      Src: /src/libevent/test/regress_listener.c:429,1
    - Dst: evconnlistener_new
      Src: /src/libevent/test/regress_listener.c:432,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:435,1
    - Dst: evconnlistener_set_error_cb
      Src: /src/libevent/test/regress_listener.c:437,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_listener.c:439,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_listener.c:441,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 445
    functionName: regress_listener_disable_in_thread_error
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evconnlistener_set_error_cb
    - evconnlistener_free
    - tt_assert
    - evconnlistener_new
    - THREAD_JOIN
    - event_base_loop
    - tt_int_op
    - send
    linkageType: ''
    returnType: void
    signature: void regress_listener_disable_in_thread_error(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetTempPathW
      Src: /src/libevent/test/regress_listener.c:457,1
    - Dst: GetLongPathNameW
      Src: /src/libevent/test/regress_listener.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 471
    functionName: is_unicode_temp_path
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - GetTempPathW
    - GetLongPathNameW
    linkageType: ''
    returnType: int
    signature: int is_unicode_temp_path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/regress_listener.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - user_data
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: empty_listener_cb
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void empty_listener_cb(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *sa, int socklen, void *user_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_listener.c:492,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_listener.c:496,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_listener.c:497,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/test/regress_listener.c:500,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_listener.c:503,1
    - Dst: close
      Src: /src/libevent/test/regress_listener.c:508,1
    - Dst: unlink
      Src: /src/libevent/test/regress_listener.c:511,1
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:513,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_listener.c:515,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:520,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:523,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:525,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:528,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:531,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:535,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_listener.c:538,1
    - Dst: is_unicode_temp_path
      Src: /src/libevent/test/regress_listener.c:538,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_listener.c:544,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:546,1
    - Dst: unlink
      Src: /src/libevent/test/regress_listener.c:551,1
    - Dst: free
      Src: /src/libevent/test/regress_listener.c:552,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:555,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 481
    functionDepth: 5
    functionLinenumber: 481
    functionLinenumberEnd: 556
    functionName: regress_listener_reuseport_on_unix_socket
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_SOCKET_ERROR
    - free
    - regress_make_tmpfile
    - evconnlistener_free
    - tt_skip
    - evconnlistener_new_bind
    - is_unicode_temp_path
    - memset
    - close
    - TT_BLATHER
    - strlcpy
    - tt_assert_msg
    - unlink
    - evutil_check_working_afunix_
    linkageType: ''
    returnType: void
    signature: void regress_listener_reuseport_on_unix_socket(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct evhttp_ext_method*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: ext_method_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ext_method_cb(struct evhttp_ext_method *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:140,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:142,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_http.c:148,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_http.c:151,1
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/test/regress_http.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - myhttp
    - pport
    - mask
    argTypes:
    - struct evhttp*
    - ev_uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: http_bind
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_bind_socket_with_handle
    - regress_get_socket_port
    - evhttp_bound_socket_get_fd
    - event_errx
    linkageType: ''
    returnType: int
    signature: int http_bind(struct evhttp *myhttp, ev_uint16_t *pport, int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/test/regress_http.c:163,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_http.c:163,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_http.c:165,1
    - Dst: ssl_getcert
      Src: /src/libevent/test/regress_http.c:165,1
    - Dst: ssl_getkey
      Src: /src/libevent/test/regress_http.c:165,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_http.c:166,1
    - Dst: ssl_getkey
      Src: /src/libevent/test/regress_http.c:166,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test/regress_http.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - arg
    argTypes:
    - struct event_base*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: https_bev
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - SSL_use_certificate
    - get_ssl_ctx
    - bufferevent_openssl_socket_new
    - SSL_new
    - ssl_getcert
    - ssl_getkey
    - SSL_use_PrivateKey
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      https_bev(struct event_base *base, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/test/regress_http.c:177,1
    - Dst: get_mbedtls_config
      Src: /src/libevent/test/regress_http.c:177,1
    - Dst: bufferevent_mbedtls_socket_new
      Src: /src/libevent/test/regress_http.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - arg
    argTypes:
    - struct event_base*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: https_mbedtls_bev
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_mbedtls_dyncontext_new
    - get_mbedtls_config
    - bufferevent_mbedtls_socket_new
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      https_mbedtls_bev(struct event_base *base, void *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:190,1
    - Dst: http_bind
      Src: /src/libevent/test/regress_http.c:192,1
    - Dst: init_ssl
      Src: /src/libevent/test/regress_http.c:196,1
    - Dst: evhttp_set_bevcb
      Src: /src/libevent/test/regress_http.c:197,1
    - Dst: evhttp_set_bevcb
      Src: /src/libevent/test/regress_http.c:202,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/test/regress_http.c:206,1
    - Dst: evhttp_set_ext_method_cmp
      Src: /src/libevent/test/regress_http.c:209,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:212,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:213,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:214,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:215,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:216,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:217,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:218,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:219,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:220,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:221,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:222,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:223,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:224,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:225,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:226,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:227,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:228,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:229,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:230,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:231,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:232,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:233,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:234,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 4
    argNames:
    - pport
    - base
    - mask
    - cbarg
    argTypes:
    - ev_uint16_t*
    - struct event_base*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 237
    functionName: http_setup_gencb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_new
    - evhttp_set_gencb
    - http_bind
    - evhttp_set_bevcb
    - init_ssl
    - evhttp_set_ext_method_cmp
    - evhttp_set_cb
    linkageType: ''
    returnType: struct evhttp
    signature: "struct evhttp *\nhttp_setup_gencb(ev_uint16_t *pport, struct event_base
      *base, int mask,\n\tvoid (*cb)(struct evhttp_request *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_setup_gencb
      Src: /src/libevent/test/regress_http.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pport
    - base
    - mask
    argTypes:
    - ev_uint16_t*
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: http_setup
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 2
    functionsReached:
    - http_setup_gencb
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      http_setup(ev_uint16_t *pport, struct event_base *base, int mask)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:257,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:260,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_http.c:261,1
    - Dst: event_warn
      Src: /src/libevent/test/regress_http.c:262,1
    - Dst: socket
      Src: /src/libevent/test/regress_http.c:268,1
    - Dst: event_err
      Src: /src/libevent/test/regress_http.c:270,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_http.c:272,1
    - Dst: connect
      Src: /src/libevent/test/regress_http.c:273,1
    - Dst: WSAGetLastError
      Src: /src/libevent/test/regress_http.c:275,1
    - Dst: event_err
      Src: /src/libevent/test/regress_http.c:278,1
    - Dst: event_err
      Src: /src/libevent/test/regress_http.c:281,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_http.c:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 246
    functionDepth: 7
    functionLinenumber: 246
    functionLinenumberEnd: 288
    functionName: http_connect
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached:
    - event_err
    - connect
    - event_warn
    - WSAGetLastError
    - socket
    - evutil_make_socket_nonblocking
    - evutil_freeaddrinfo
    - evutil_getaddrinfo
    - evutil_snprintf
    - memset
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t http_connect(const char *address, ev_uint16_t port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:294,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:295,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:302,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - struct evbuffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 312
    functionName: evbuffer_datacmp
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strlen
    - evbuffer_get_length
    - memcmp
    - evbuffer_pullup
    linkageType: ''
    returnType: int
    signature: int evbuffer_datacmp(struct evbuffer *buf, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_http.c:319,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - struct evbuffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: evbuffer_contains
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strlen
    - evbuffer_search
    linkageType: ''
    returnType: int
    signature: int evbuffer_contains(struct evbuffer *buf, const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:329,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:329,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:330,1
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/test/regress_http.c:334,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:334,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/test/regress_http.c:338,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:338,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:343,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:343,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:348,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:349,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:351,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:353,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:355,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:356,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 359
    functionName: http_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - bufferevent_disable
    - fprintf
    - evhttp_parse_firstline_
    - event_base_loopexit
    - evhttp_request_new
    - evhttp_parse_headers_
    - bufferevent_get_input
    - exit
    - evhttp_request_get_input_headers
    - evhttp_find_header
    - evbuffer_contains
    linkageType: ''
    returnType: void
    signature: void http_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:364,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:364,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: http_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void http_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: http_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:387,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:389,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:389,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:391,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:392,1
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/test/regress_http.c:394,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:395,1
    - Dst: evhttp_connection_get_server
      Src: /src/libevent/test/regress_http.c:395,1
    - Dst: evhttp_connection_get_addr
      Src: /src/libevent/test/regress_http.c:401,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:402,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_http.c:405,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:406,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:406,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:406,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_http.c:408,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:409,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:409,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:409,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:411,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:418,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:418,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:420,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:421,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:421,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:423,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:423,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:429,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:429,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:431,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:437,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:437,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:438,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:438,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:442,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 384
    functionDepth: 9
    functionLinenumber: 384
    functionLinenumberEnd: 447
    functionName: http_basic_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - evbuffer_new
    - tt_assert
    - strncmp
    - tt_fail_msg
    - evhttp_send_reply
    - evhttp_add_header
    - evhttp_request_get_output_headers
    - evhttp_connection_get_server
    - evhttp_request_get_connection
    - evhttp_request_get_input_headers
    - evbuffer_add_printf
    - strlen
    - evbuffer_free
    - TT_BLATHER
    - evhttp_connection_get_addr
    - evhttp_find_header
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_basic_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: http_timeout_reply_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    linkageType: ''
    returnType: void
    signature: void http_timeout_reply_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: http_timeout_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_once
    linkageType: ''
    returnType: void
    signature: void http_timeout_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:466,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:470,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:472,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: http_large_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_free
    - evbuffer_add_printf
    - evhttp_send_reply
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_large_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:491,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:495,1
    - Dst: evhttp_send_reply_chunk
      Src: /src/libevent/test/regress_http.c:496,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:497,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:500,1
    - Dst: evhttp_send_reply_end
      Src: /src/libevent/test/regress_http.c:503,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 488
    functionDepth: 9
    functionLinenumber: 488
    functionLinenumberEnd: 506
    functionName: http_chunked_trickle_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_end
    - free
    - event_base_once
    - evbuffer_new
    - evbuffer_free
    - evhttp_send_reply_chunk
    - evbuffer_add_printf
    linkageType: ''
    returnType: void
    signature: void http_chunked_trickle_cb(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:512,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:513,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:515,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:519,1
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/test/regress_http.c:519,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:520,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:520,1
    - Dst: evhttp_send_reply_start
      Src: /src/libevent/test/regress_http.c:524,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 508
    functionDepth: 5
    functionLinenumber: 508
    functionLinenumberEnd: 529
    functionName: http_chunked_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - malloc
    - evhttp_send_reply_start
    - evhttp_add_header
    - evhttp_request_get_output_headers
    - evhttp_request_get_uri
    - TT_BLATHER
    - memset
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_chunked_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:534,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:535,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_http.c:537,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:537,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:538,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 6
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: http_chunked_input_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evbuffer_add_buffer
    - evbuffer_new
    - evhttp_send_reply
    - evbuffer_free
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_chunked_input_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:550,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_http.c:553,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_http.c:553,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:556,1
    - Dst: bufferevent_openssl_filter_new
      Src: /src/libevent/test/regress_http.c:557,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test/regress_http.c:560,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:563,1
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/test/regress_http.c:567,1
    - Dst: get_mbedtls_config
      Src: /src/libevent/test/regress_http.c:567,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:570,1
    - Dst: bufferevent_mbedtls_filter_new
      Src: /src/libevent/test/regress_http.c:571,1
    - Dst: bufferevent_mbedtls_socket_new
      Src: /src/libevent/test/regress_http.c:574,1
    - Dst: bufferevent_mbedtls_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - base
    - fd
    - ssl_mask
    - flags_
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 582
    functionName: create_bev
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached:
    - get_ssl_ctx
    - bufferevent_openssl_filter_new
    - bufferevent_openssl_set_allow_dirty_shutdown
    - bufferevent_openssl_socket_new
    - bufferevent_socket_new
    - SSL_new
    - bufferevent_mbedtls_dyncontext_new
    - get_mbedtls_config
    - bufferevent_mbedtls_set_allow_dirty_shutdown
    - bufferevent_mbedtls_filter_new
    - bufferevent_mbedtls_socket_new
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      create_bev(struct event_base *base, evutil_socket_t fd, int ssl_mask, int flags_)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:587,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:587,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:592,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:592,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 584
    functionDepth: 8
    functionLinenumber: 584
    functionLinenumberEnd: 598
    functionName: http_half_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - bufferevent_write
    - strlen
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void http_half_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:609,1
    - Dst: http_bind
      Src: /src/libevent/test/regress_http.c:615,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:616,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:617,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:620,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:623,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:624,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:626,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:628,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:631,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:636,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:637,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:640,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:642,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:645,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:646,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:648,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:650,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:652,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:659,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:660,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:663,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:665,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:668,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:669,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:671,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:680,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:680,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:683,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:684,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:686,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 3
    argNames:
    - arg
    - ssl
    - request_line
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 600
    functionDepth: 9
    functionLinenumber: 600
    functionLinenumberEnd: 690
    functionName: http_basic_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - fprintf
    - event_base_dispatch
    - http_connect
    - tt_assert
    - bufferevent_get_output
    - http_bind
    - exit
    - bufferevent_write
    - strlen
    - evbuffer_add_printf
    - http_setup
    - evhttp_free
    - bufferevent_free
    - create_bev
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_basic_test_impl(void *arg, int ssl, const char *request_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 691
    functionDepth: 10
    functionLinenumber: 691
    functionLinenumberEnd: 692
    functionName: http_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void http_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 693
    functionDepth: 10
    functionLinenumber: 693
    functionLinenumberEnd: 694
    functionName: http_basic_trailing_space_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void http_basic_trailing_space_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 697
    functionDepth: 6
    functionLinenumber: 697
    functionLinenumberEnd: 705
    functionName: http_delay_reply
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    linkageType: ''
    returnType: void
    signature: void http_delay_reply(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:711,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 716
    functionName: http_delay_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void http_delay_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:721,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:723,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:723,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:724,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:726,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 9
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: http_badreq_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_new
    - evhttp_send_reply
    - evhttp_add_header
    - evbuffer_free
    - evbuffer_add_printf
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_badreq_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 735
    functionName: http_badreq_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_badreq_errorcb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:743,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:743,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_http.c:744,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:745,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:746,1
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:750,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:750,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:751,1
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/test/regress_http.c:755,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:755,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/test/regress_http.c:759,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:759,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:764,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:764,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:769,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:770,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:770,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:770,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:770,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_http.c:773,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:773,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 737
    functionDepth: 4
    functionLinenumber: 737
    functionLinenumberEnd: 774
    functionName: http_badreq_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - bufferevent_disable
    - evhttp_parse_firstline_
    - event_base_loopexit
    - evhttp_request_new
    - bufferevent_getfd
    - evhttp_parse_headers_
    - bufferevent_get_input
    - evhttp_request_get_input_headers
    - TT_FAIL
    - evbuffer_get_length
    - shutdown
    - evbuffer_drain
    - evhttp_find_header
    - evbuffer_contains
    linkageType: ''
    returnType: void
    signature: void http_badreq_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:779,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 781
    functionName: http_badreq_successcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_badreq_successcb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:792,1
    - Dst: http_bind
      Src: /src/libevent/test/regress_http.c:798,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_http.c:799,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:802,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:803,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:806,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:807,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:809,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:811,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:816,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:816,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_http.c:818,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:819,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:821,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:823,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:825,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:826,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:829,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:830,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:836,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:837,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:840,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:841,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:843,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:845,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:853,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:853,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:855,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:857,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:859,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:861,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:864,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:866,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 783
    functionDepth: 8
    functionLinenumber: 783
    functionLinenumberEnd: 869
    functionName: http_bad_request_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - bufferevent_write
    - strlen
    - bufferevent_enable
    - http_bind
    - evutil_closesocket
    - exit
    - TT_DIE
    - tt_assert
    - http_connect
    - bufferevent_socket_new
    - evutil_timerclear
    - evhttp_free
    - bufferevent_free
    - bufferevent_setcb
    - fprintf
    - event_base_once
    - http_setup
    - shutdown
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_bad_request_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:877,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:880,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/test/regress_http.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 873
    functionDepth: 4
    functionLinenumber: 873
    functionLinenumberEnd: 882
    functionName: http_large_delay_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - evutil_timerclear
    - evhttp_connection_fail_
    linkageType: ''
    returnType: void
    signature: void http_large_delay_cb(struct evhttp_request *req, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/test/regress_http.c:887,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:888,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:889,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:889,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:892,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:894,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:896,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:898,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:900,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:902,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:904,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:906,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:909,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:910,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:913,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:914,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:915,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:918,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:919,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:922,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:925,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 884
    functionDepth: 9
    functionLinenumber: 884
    functionLinenumberEnd: 926
    functionName: http_genmethod_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - fprintf
    - evbuffer_new
    - evhttp_request_get_command
    - evhttp_send_reply
    - exit
    - evbuffer_free
    - evhttp_request_get_input_headers
    - evbuffer_add_printf
    - evhttp_request_get_uri
    - TT_BLATHER
    - evhttp_find_header
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_genmethod_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:936,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:941,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:942,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:943,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:945,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:948,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:949,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:951,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:953,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:954,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:962,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:964,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:965,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:968,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:970,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - arg
    - method
    - name
    - path
    argTypes:
    - void*
    - enum evhttp_cmd_type
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 928
    functionDepth: 9
    functionLinenumber: 928
    functionLinenumberEnd: 974
    functionName: http_genmethod_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - http_connect
    - tt_assert
    - evhttp_set_allowed_methods
    - bufferevent_get_output
    - bufferevent_socket_new
    - evutil_closesocket
    - evbuffer_add_printf
    - http_setup
    - evhttp_free
    - bufferevent_free
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_genmethod_test(void *arg, enum evhttp_cmd_type method, const
      char *name, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:982,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:983,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:983,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:986,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:988,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:989,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:992,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:993,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:996,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 979
    functionDepth: 9
    functionLinenumber: 979
    functionLinenumberEnd: 1000
    functionName: http_custom_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - fprintf
    - evbuffer_new
    - evhttp_request_get_command
    - evhttp_send_reply
    - exit
    - evbuffer_free
    - evhttp_request_get_input_headers
    - evbuffer_add_printf
    - TT_BLATHER
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_custom_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1014,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:1016,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1018,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1019,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1020,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1023,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1024,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1026,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1035,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1035,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1037,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1039,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1040,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1043,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1045,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1002
    functionDepth: 8
    functionLinenumber: 1002
    functionLinenumberEnd: 1049
    functionName: http_custom_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - http_connect
    - tt_assert
    - evhttp_set_allowed_methods
    - bufferevent_socket_new
    - evutil_closesocket
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_custom_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1051
    functionDepth: 10
    functionLinenumber: 1051
    functionLinenumberEnd: 1055
    functionName: http_delete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_delete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1057
    functionDepth: 10
    functionLinenumber: 1057
    functionLinenumberEnd: 1061
    functionName: http_propfind_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_propfind_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1063
    functionDepth: 10
    functionLinenumber: 1063
    functionLinenumberEnd: 1067
    functionName: http_proppatch_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_proppatch_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1069
    functionDepth: 10
    functionLinenumber: 1069
    functionLinenumberEnd: 1073
    functionName: http_mkcol_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_mkcol_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1075
    functionDepth: 10
    functionLinenumber: 1075
    functionLinenumberEnd: 1079
    functionName: http_lock_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_lock_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1081
    functionDepth: 10
    functionLinenumber: 1081
    functionLinenumberEnd: 1085
    functionName: http_unlock_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_unlock_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1087
    functionDepth: 10
    functionLinenumber: 1087
    functionLinenumberEnd: 1091
    functionName: http_copy_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_copy_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1093
    functionDepth: 10
    functionLinenumber: 1093
    functionLinenumberEnd: 1097
    functionName: http_move_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_move_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1106,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1107,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:1110,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:1111,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1112,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1113,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:1116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1119
    functionName: http_sent_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - fprintf
    - evhttp_request_get_output_buffer
    - exit
    - evbuffer_get_length
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_sent_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:1124,1
    - Dst: evhttp_request_set_on_complete_cb
      Src: /src/libevent/test/regress_http.c:1126,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:1128,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:1129,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:1132,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1121
    functionDepth: 9
    functionLinenumber: 1121
    functionLinenumberEnd: 1137
    functionName: http_on_complete_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_new
    - evhttp_request_set_on_complete_cb
    - evhttp_send_reply
    - evbuffer_free
    - evbuffer_add_printf
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_on_complete_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1147,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1152,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1153,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1156,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1157,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1158,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1167,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1167,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1169,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1171,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1173,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1175,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1139
    functionDepth: 8
    functionLinenumber: 1139
    functionLinenumberEnd: 1179
    functionName: http_on_complete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - http_connect
    - bufferevent_socket_new
    - evutil_closesocket
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_on_complete_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_http.c:1188,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:1188,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1193,1
    - Dst: strdup
      Src: /src/libevent/test/regress_http.c:1194,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1181
    functionDepth: 5
    functionLinenumber: 1181
    functionLinenumberEnd: 1198
    functionName: http_allowed_methods_eventcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - event_base_loopexit
    - bufferevent_get_input
    - strdup
    - evbuffer_remove
    linkageType: ''
    returnType: void
    signature: void http_allowed_methods_eventcb(struct bufferevent *bev, short what,
      void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1209,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1214,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1215,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:1218,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1221,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1222,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1223,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1224,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1233,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1233,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1235,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1237,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1238,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1241,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1242,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1243,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1252,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1252,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1254,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1256,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1257,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1259,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1260,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1262,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1263,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1272,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1272,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1274,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1276,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1277,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1279,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1280,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1282,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1283,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1292,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1292,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1294,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1296,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1297,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1298,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1299,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1301,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1304,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1305,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1305,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1305,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1308,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1309,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1309,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1309,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1312,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1313,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1313,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1313,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1316,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1317,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1317,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1317,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1321,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1323,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1325,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1327,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1329,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1331,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1333,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1335,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 71
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1200
    functionDepth: 8
    functionLinenumber: 1200
    functionLinenumberEnd: 1336
    functionName: http_allowed_methods_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - event_base_dispatch
    - tt_assert
    - http_connect
    - evhttp_set_allowed_methods
    - strncmp
    - bufferevent_enable
    - bufferevent_socket_new
    - evutil_closesocket
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_allowed_methods_test(void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1358,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_http.c:1362,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1364,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:1366,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_http.c:1370,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_http.c:1370,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test/regress_http.c:1371,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:1374,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:1376,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_http.c:1378,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1381,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1383,1
    - Dst: evhttp_connection_set_family
      Src: /src/libevent/test/regress_http.c:1384,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1386,1
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:1386,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1390,1
    - Dst: evhttp_connection_get_server
      Src: /src/libevent/test/regress_http.c:1390,1
    - Dst: evhttp_connection_set_ext_method_cmp
      Src: /src/libevent/test/regress_http.c:1393,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1399,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1402,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1402,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1405,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1406,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1407,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1410,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1412,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1417,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1420,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1420,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1427,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1427,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1430,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1431,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1434,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1439,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1442,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1442,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1445,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1446,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1449,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1454,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1457,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1457,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1460,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1461,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1464,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1468,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1470,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 7
    argNames:
    - data
    - persistent
    - address
    - dnsbase
    - ipv6
    - family
    - ssl
    argTypes:
    - struct basic_test_data*
    - int
    - char*
    - struct evdns_base*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1342
    functionDepth: 7
    functionLinenumber: 1342
    functionLinenumberEnd: 1471
    functionName: http_connection_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - get_ssl_ctx
    - evhttp_connection_set_family
    - exit
    - evhttp_connection_get_base
    - evhttp_connection_base_bufferevent_new
    - tt_assert
    - tt_skip
    - SSL_new
    - evhttp_connection_get_server
    - evhttp_connection_free
    - evhttp_free
    - evhttp_request_get_output_headers
    - fprintf
    - evhttp_set_allowed_methods
    - bufferevent_openssl_set_allow_dirty_shutdown
    - bufferevent_openssl_socket_new
    - evhttp_connection_base_new
    - evhttp_request_new
    - evhttp_connection_set_ext_method_cmp
    - evhttp_add_header
    - evhttp_make_request
    - http_setup
    linkageType: ''
    returnType: void
    signature: "void http_connection_test_(struct basic_test_data *data, int persistent,\n\tconst
      char *address, struct evdns_base *dnsbase, int ipv6, int family,\n\tint ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1473
    functionDepth: 8
    functionLinenumber: 1473
    functionLinenumberEnd: 1477
    functionName: http_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1478
    functionDepth: 8
    functionLinenumber: 1478
    functionLinenumberEnd: 1482
    functionName: http_persist_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_persist_connection_test(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1499,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1502,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:1502,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:1504,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1505,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:1509,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:1510,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1514,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1515,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1522,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1525,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1525,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1528,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1529,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1530,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1533,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1535,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1540,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1543,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1543,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1549,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1549,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1552,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1553,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1556,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1561,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1564,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1564,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1567,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1568,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1571,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1575,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1577,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:1579,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:1580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1489
    functionDepth: 9
    functionLinenumber: 1489
    functionLinenumberEnd: 1581
    functionName: http_connection_async_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - evutil_snprintf
    - exit
    - tt_assert
    - evdns_base_free
    - evhttp_connection_free
    - evhttp_free
    - regress_clean_dnsserver
    - evhttp_request_get_output_headers
    - evdns_base_new
    - fprintf
    - evhttp_request_new
    - evhttp_connection_base_new
    - evdns_base_nameserver_ip_add
    - evhttp_add_header
    - regress_dnsserver
    - evhttp_make_request
    - http_setup
    linkageType: ''
    returnType: void
    signature: void http_connection_async_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1590,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1595,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1596,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1602,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1603,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:1606,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1607,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1607,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1608,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1608,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1609,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1609,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1611,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1612,1
    - Dst: evhttp_connection_free_on_completion
      Src: /src/libevent/test/regress_http.c:1621,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:1624,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1625,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1628,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/test/regress_http.c:1628,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1632,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1634,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1583
    functionDepth: 7
    functionLinenumber: 1583
    functionLinenumberEnd: 1635
    functionName: http_autofree_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - TAILQ_FIRST
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evhttp_connection_free_on_completion
    - ARRAY_SIZE
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_autofree_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1640,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1642
    functionName: http_request_never_call
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_request_never_call(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1646,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1649
    functionName: http_failed_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void http_failed_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1654,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1655,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:1655,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1651
    functionDepth: 2
    functionLinenumber: 1651
    functionLinenumberEnd: 1658
    functionName: http_timed_out_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - event_base_loopexit
    - tt_int_op
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void http_timed_out_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1665,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1666,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:1672,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - error
    - arg
    argTypes:
    - enum evhttp_request_error
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1677
    functionName: http_request_error_cb_with_cancel
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - event_base_loopexit
    - fprintf
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void http_request_error_cb_with_cancel(enum evhttp_request_error error,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_cancel_request
      Src: /src/libevent/test/regress_http.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1678
    functionDepth: 5
    functionLinenumber: 1678
    functionLinenumberEnd: 1684
    functionName: http_do_cancel
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_cancel_request
    linkageType: ''
    returnType: void
    signature: void http_do_cancel(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1688,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - info
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1690
    functionName: http_no_write
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_no_write(struct evbuffer *buffer, const struct evbuffer_cb_info
      *info, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1700,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - evcons
    argTypes:
    - struct evhttp_connection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1703
    functionName: http_free_evcons
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - evhttp_connection_free
    linkageType: ''
    returnType: void
    signature: void http_free_evcons(struct evhttp_connection **evcons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/regress_http.c:1709,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1715,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1716,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:1717,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1719,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1721,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1721,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1727,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1705
    functionDepth: 7
    functionLinenumber: 1705
    functionLinenumberEnd: 1730
    functionName: http_fill_backlog
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - fprintf
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - http_free_evcons
    - evhttp_connection_set_timeout
    - evhttp_make_request
    - tt_int_op
    - calloc
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection **

      http_fill_backlog(struct event_base *base, int port)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1746,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - enum http_cancel_test_type
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1740
    functionDepth: 2
    functionLinenumber: 1740
    functionLinenumberEnd: 1753
    functionName: http_cancel_test_bad_request_new
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_new
    linkageType: ''
    returnType: struct evhttp_request
    signature: "struct evhttp_request *\nhttp_cancel_test_bad_request_new(enum http_cancel_test_type
      type,\n\tstruct event_base *base)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1773,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1778,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:1778,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:1780,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1781,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:1787,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:1788,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_http.c:1790,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_http.c:1791,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_http.c:1792,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_http.c:1801,1
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1802,1
    - Dst: http_fill_backlog
      Src: /src/libevent/test/regress_http.c:1809,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1810,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1813,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1817,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:1819,1
    - Dst: evhttp_connection_get_bufferevent
      Src: /src/libevent/test/regress_http.c:1822,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_http.c:1826,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:1826,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1833,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:1834,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1837,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1837,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1840,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1840,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:1843,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:1847,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1849,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1852,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1854,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1859,1
    - Dst: http_fill_backlog
      Src: /src/libevent/test/regress_http.c:1862,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1863,1
    - Dst: http_cancel_test_bad_request_new
      Src: /src/libevent/test/regress_http.c:1866,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1868,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1871,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1871,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1874,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1874,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1877,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1882,1
    - Dst: http_fill_backlog
      Src: /src/libevent/test/regress_http.c:1885,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1886,1
    - Dst: http_cancel_test_bad_request_new
      Src: /src/libevent/test/regress_http.c:1889,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1891,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1894,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1894,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1897,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1897,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1900,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1903,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_http.c:1905,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:1905,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1907,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1909,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:1911,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:1912,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1914,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_http.c:1916,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 84
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1754
    functionDepth: 9
    functionLinenumber: 1754
    functionLinenumberEnd: 1917
    functionName: http_cancel_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - http_free_evcons
    - evdns_base_set_option
    - evutil_snprintf
    - evbuffer_remove_cb
    - bufferevent_get_output
    - event_base_new
    - tt_assert
    - evdns_base_free
    - evhttp_request_set_error_cb
    - evhttp_connection_set_timeout
    - evutil_timerclear
    - evhttp_connection_free
    - evhttp_free
    - evhttp_connection_get_bufferevent
    - http_fill_backlog
    - regress_clean_dnsserver
    - evhttp_request_get_output_headers
    - evdns_base_new
    - event_base_once
    - event_base_free
    - evhttp_request_new
    - evhttp_connection_base_new
    - evdns_base_nameserver_ip_add
    - evhttp_add_header
    - http_cancel_test_bad_request_new
    - regress_dnsserver
    - evhttp_make_request
    - http_setup
    - evbuffer_add_cb
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_cancel_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:1922,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1919
    functionDepth: 2
    functionLinenumber: 1919
    functionLinenumberEnd: 1924
    functionName: http_request_no_action_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_request_no_action_done(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1932,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1933,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:1936,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1937,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1938,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:1941,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:1941,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1942,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1943,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:1946,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:1946,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1946,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1947,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1948,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:1951,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:1951,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1952,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1953,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:1957,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1958,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1926
    functionDepth: 5
    functionLinenumber: 1926
    functionLinenumberEnd: 1959
    functionName: http_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - fprintf
    - EVUTIL_ASSERT
    - event_base_loopexit
    - evbuffer_datacmp
    - exit
    - strlen
    - evhttp_request_get_input_headers
    - evbuffer_get_length
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:1964,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1965,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1966,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:1970,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1961
    functionDepth: 2
    functionLinenumber: 1961
    functionLinenumberEnd: 1972
    functionName: http_request_expect_error
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - fprintf
    - EVUTIL_ASSERT
    - event_base_loopexit
    - exit
    linkageType: ''
    returnType: void
    signature: void http_request_expect_error(struct evhttp_request *req, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1986,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:1991,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:1992,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:1993,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:1994,1
    - Dst: evhttp_add_virtual_host
      Src: /src/libevent/test/regress_http.c:1996,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1997,1
    - Dst: evhttp_add_virtual_host
      Src: /src/libevent/test/regress_http.c:2000,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2001,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2005,1
    - Dst: evhttp_add_server_alias
      Src: /src/libevent/test/regress_http.c:2005,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2006,1
    - Dst: evhttp_add_server_alias
      Src: /src/libevent/test/regress_http.c:2006,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2008,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2009,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2012,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2015,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2015,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2018,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2020,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2023,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2025,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2030,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2033,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2033,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2036,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2038,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2039,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2042,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2044,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2049,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2052,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2052,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2055,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2057,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2060,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2062,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2067,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2070,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2070,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2073,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2075,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2078,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2080,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2085,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2088,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2088,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2091,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2093,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2096,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2098,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:2103,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2104,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:2107,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2108,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:2110,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:2120,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2120,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2122,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2124,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:2126,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:2127,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2131,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 71
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 1975
    functionDepth: 8
    functionLinenumber: 1975
    functionLinenumberEnd: 2134
    functionName: http_virtual_host_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - bufferevent_write
    - strlen
    - evhttp_set_cb
    - evutil_closesocket
    - exit
    - evhttp_new
    - tt_assert
    - http_connect
    - bufferevent_socket_new
    - evhttp_connection_free
    - evhttp_free
    - bufferevent_free
    - bufferevent_setcb
    - evhttp_request_get_output_headers
    - fprintf
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_virtual_host
    - evhttp_add_header
    - evhttp_make_request
    - http_setup
    - evhttp_add_server_alias
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_virtual_host_test(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2142,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2143,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2146,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2147,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2148,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2151,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2151,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2152,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2153,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2157,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2157,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2158,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2159,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:2162,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2162,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2162,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2164,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2165,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2168,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2168,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2169,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2170,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:2174,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2138
    functionDepth: 2
    functionLinenumber: 2138
    functionLinenumberEnd: 2176
    functionName: http_request_empty_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - fprintf
    - EVUTIL_ASSERT
    - event_base_loopexit
    - exit
    - evhttp_request_get_input_headers
    - evbuffer_get_length
    - evhttp_find_header
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_request_empty_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:2186,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:2187,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2188,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:2190,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2182
    functionDepth: 9
    functionLinenumber: 2182
    functionLinenumberEnd: 2193
    functionName: http_dispatcher_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_new
    - evhttp_send_reply
    - evbuffer_free
    - evbuffer_add_printf
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_dispatcher_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2202,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2203,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2206,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2207,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2208,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2211,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2211,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2212,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2213,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2216,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2216,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2216,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2217,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2218,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2218,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2218,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2219,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2222,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2222,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2223,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2224,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2195
    functionDepth: 5
    functionLinenumber: 2195
    functionLinenumberEnd: 2229
    functionName: http_dispatcher_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - fprintf
    - event_base_loopexit
    - evbuffer_datacmp
    - exit
    - strlen
    - evhttp_request_get_input_headers
    - evbuffer_get_length
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_dispatcher_test_done(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2238,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2242,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2243,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:2246,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2253,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2254,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2257,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2257,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2259,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2260,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2263,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2267,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2231
    functionDepth: 7
    functionLinenumber: 2231
    functionLinenumberEnd: 2270
    functionName: http_dispatcher_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evhttp_free
    - evhttp_make_request
    - evhttp_connection_set_local_address
    - http_setup
    - evhttp_connection_free
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_dispatcher_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/libevent/test/regress_http.c:2284,1
    - Dst: stat
      Src: /src/libevent/test/regress_http.c:2286,1
    - Dst: S_ISSOCK
      Src: /src/libevent/test/regress_http.c:2286,1
    - Dst: evutil_socket_
      Src: /src/libevent/test/regress_http.c:2290,1
    - Dst: connect
      Src: /src/libevent/test/regress_http.c:2295,1
    - Dst: perror
      Src: /src/libevent/test/regress_http.c:2296,1
    - Dst: event_debug
      Src: /src/libevent/test/regress_http.c:2297,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2276
    functionDepth: 4
    functionLinenumber: 2276
    functionLinenumberEnd: 2303
    functionName: http_connect_unixsocket
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strcpy
    - evutil_socket_
    - connect
    - S_ISSOCK
    - stat
    - close
    - event_debug
    - perror
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t http_connect_unixsocket(const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/libevent/test/regress_http.c:2314,1
    - Dst: stat
      Src: /src/libevent/test/regress_http.c:2318,1
    - Dst: S_ISSOCK
      Src: /src/libevent/test/regress_http.c:2318,1
    - Dst: unlink
      Src: /src/libevent/test/regress_http.c:2319,1
    - Dst: evutil_socket_
      Src: /src/libevent/test/regress_http.c:2321,1
    - Dst: bind
      Src: /src/libevent/test/regress_http.c:2326,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2327,1
    - Dst: chmod
      Src: /src/libevent/test/regress_http.c:2332,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2333,1
    - Dst: listen
      Src: /src/libevent/test/regress_http.c:2337,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2338,1
    - Dst: evhttp_accept_socket
      Src: /src/libevent/test/regress_http.c:2342,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - httpd
    - path
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2306
    functionDepth: 4
    functionLinenumber: 2306
    functionLinenumberEnd: 2348
    functionName: evhttp_bind_unixsocket
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strcpy
    - evutil_socket_
    - S_ISSOCK
    - chmod
    - stat
    - evhttp_accept_socket
    - bind
    - close
    - listen
    - unlink
    linkageType: ''
    returnType: int
    signature: int evhttp_bind_unixsocket(struct evhttp *httpd, const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/libevent/test/regress_http.c:2360,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:2367,1
    - Dst: getpid
      Src: /src/libevent/test/regress_http.c:2367,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:2368,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:2370,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2371,1
    - Dst: evhttp_bind_unixsocket
      Src: /src/libevent/test/regress_http.c:2371,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:2373,1
    - Dst: evhttp_uri_parse_with_flags
      Src: /src/libevent/test/regress_http.c:2375,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2376,1
    - Dst: http_connect_unixsocket
      Src: /src/libevent/test/regress_http.c:2379,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:2380,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:2381,1
    - Dst: evhttp_connection_base_bufferevent_reuse_new
      Src: /src/libevent/test/regress_http.c:2382,1
    - Dst: evhttp_connection_base_bufferevent_unix_new
      Src: /src/libevent/test/regress_http.c:2384,1
    - Dst: evhttp_uri_get_unixsocket
      Src: /src/libevent/test/regress_http.c:2384,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2386,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2391,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2392,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2395,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2395,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2397,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2398,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2401,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:2404,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:2404,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2409,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2411,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:2413,1
    - Dst: strstr
      Src: /src/libevent/test/regress_http.c:2416,1
    - Dst: unlink
      Src: /src/libevent/test/regress_http.c:2417,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - data
    - preexisting
    argTypes:
    - struct basic_test_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2351
    functionDepth: 7
    functionLinenumber: 2351
    functionLinenumberEnd: 2418
    functionName: http_unix_socket_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - evhttp_bind_unixsocket
    - strstr
    - evhttp_uri_parse_with_flags
    - evhttp_connection_base_bufferevent_reuse_new
    - evhttp_set_cb
    - tt_fd_op
    - evutil_snprintf
    - evhttp_connection_base_bufferevent_unix_new
    - evhttp_uri_get_unixsocket
    - unlink
    - evhttp_uri_free
    - getpid
    - evhttp_new
    - tt_assert
    - getenv
    - http_connect_unixsocket
    - bufferevent_getfd
    - evhttp_connection_free
    - evhttp_free
    - create_bev
    - evhttp_request_get_output_headers
    - evhttp_request_new
    - evhttp_add_header
    - evhttp_make_request
    linkageType: ''
    returnType: void
    signature: void http_unix_socket_test_(struct basic_test_data *data, int preexisting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_unix_socket_test_
      Src: /src/libevent/test/regress_http.c:2423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2420
    functionDepth: 8
    functionLinenumber: 2420
    functionLinenumberEnd: 2424
    functionName: http_unix_socket_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_unix_socket_test_
    linkageType: ''
    returnType: void
    signature: void http_unix_socket_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_unix_socket_test_
      Src: /src/libevent/test/regress_http.c:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2426
    functionDepth: 8
    functionLinenumber: 2426
    functionLinenumberEnd: 2430
    functionName: http_unix_socket_preexist_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_unix_socket_test_
    linkageType: ''
    returnType: void
    signature: void http_unix_socket_preexist_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2448,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2452,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2453,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2460,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2461,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2464,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2464,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2465,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:2465,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2467,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2468,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2471,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2473,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2477,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2478,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2483,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2483,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2484,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2484,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2485,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:2485,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2487,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2488,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2491,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2493,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2495,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2441
    functionDepth: 9
    functionLinenumber: 2441
    functionLinenumberEnd: 2500
    functionName: http_post_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_request_get_output_buffer
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evbuffer_add_printf
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    - tt_int_op
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_post_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:2506,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:2509,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2510,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2511,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2514,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2514,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2514,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2515,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2516,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2516,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2516,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2517,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2520,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2520,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2521,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2522,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:2522,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2522,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2523,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2524,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:2527,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2528,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:2530,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:2532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2502
    functionDepth: 9
    functionLinenumber: 2502
    functionLinenumberEnd: 2533
    functionName: http_post_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - fprintf
    - evbuffer_new
    - evhttp_request_get_command
    - evhttp_send_reply
    - evbuffer_datacmp
    - exit
    - strlen
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - TT_BLATHER
    - evbuffer_pullup
    linkageType: ''
    returnType: void
    signature: void http_post_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2542,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2543,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2546,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2548,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2549,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2552,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2552,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2553,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2554,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2557,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2557,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2557,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2558,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2559,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2559,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2559,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2560,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2563,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2563,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2564,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2565,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2535
    functionDepth: 5
    functionLinenumber: 2535
    functionLinenumberEnd: 2570
    functionName: http_postrequest_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - fprintf
    - event_base_loopexit
    - evbuffer_datacmp
    - exit
    - strlen
    - evhttp_request_get_input_headers
    - evbuffer_get_length
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_postrequest_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2587,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2591,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2592,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2598,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2599,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2602,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2602,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2603,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:2603,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2605,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2606,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2609,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2611,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2612,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2580
    functionDepth: 9
    functionLinenumber: 2580
    functionLinenumberEnd: 2617
    functionName: http_put_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_request_get_output_buffer
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evbuffer_add_printf
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    - tt_int_op
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_put_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:2623,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:2626,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2627,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2628,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2631,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2631,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2631,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2632,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2633,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2633,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2633,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2634,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2637,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2637,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2638,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2639,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:2639,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2639,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2640,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2641,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:2644,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2645,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:2647,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:2649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2619
    functionDepth: 9
    functionLinenumber: 2619
    functionLinenumberEnd: 2650
    functionName: http_put_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - fprintf
    - evbuffer_new
    - evhttp_request_get_command
    - evhttp_send_reply
    - evbuffer_datacmp
    - exit
    - strlen
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - TT_BLATHER
    - evbuffer_pullup
    linkageType: ''
    returnType: void
    signature: void http_put_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2659,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2660,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2663,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2665,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2666,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2669,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2669,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2670,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2671,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2674,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2674,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2674,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2675,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2676,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2676,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2676,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2677,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2681,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2681,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2682,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2683,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2652
    functionDepth: 5
    functionLinenumber: 2652
    functionLinenumberEnd: 2688
    functionName: http_putrequest_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - fprintf
    - event_base_loopexit
    - evbuffer_datacmp
    - exit
    - strlen
    - evhttp_request_get_input_headers
    - evbuffer_get_length
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_putrequest_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:2694,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:2694,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:2696,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2690
    functionDepth: 3
    functionLinenumber: 2690
    functionLinenumberEnd: 2699
    functionName: http_failure_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - event_base_loopexit
    - evbuffer_contains
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void http_failure_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2712,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:2716,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2717,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:2720,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2721,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:2723,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:2728,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2728,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2730,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:2732,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2734,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2736,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:2739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2704
    functionDepth: 8
    functionLinenumber: 2704
    functionLinenumberEnd: 2740
    functionName: http_failure_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - http_connect
    - bufferevent_socket_new
    - evutil_closesocket
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_failure_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2746,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2747,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2747,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:2752,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2742
    functionDepth: 2
    functionLinenumber: 2742
    functionLinenumberEnd: 2755
    functionName: close_detect_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - event_base_loopexit
    - evutil_timerclear
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void close_detect_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:2761,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2764,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2767,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2767,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2770,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:2771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2757
    functionDepth: 6
    functionLinenumber: 2757
    functionLinenumberEnd: 2773
    functionName: close_detect_launch
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_fail_msg
    - evhttp_request_new
    - evhttp_add_header
    - evhttp_make_request
    - evhttp_connection_get_base
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void close_detect_launch(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:2779,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2782,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2783,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:2786,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:2791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2775
    functionDepth: 2
    functionLinenumber: 2775
    functionLinenumberEnd: 2794
    functionName: close_detect_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_request_get_response_code
    - event_base_once
    - evutil_timerclear
    - evhttp_connection_get_base
    linkageType: ''
    returnType: void
    signature: void close_detect_cb(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2804,1
    - Dst: evhttp_set_timeout_tv
      Src: /src/libevent/test/regress_http.c:2809,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2811,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2813,1
    - Dst: evhttp_connection_set_timeout_tv
      Src: /src/libevent/test/regress_http.c:2814,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2817,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2825,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2828,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2828,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2831,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2833,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2836,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2839,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/test/regress_http.c:2839,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2843,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - data
    - with_delay
    argTypes:
    - struct basic_test_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2797
    functionDepth: 7
    functionLinenumber: 2797
    functionLinenumberEnd: 2846
    functionName: http_close_detection_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - TAILQ_FIRST
    - evhttp_connection_set_timeout_tv
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evhttp_set_timeout_tv
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_close_detection_(struct basic_test_data *data, int with_delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_close_detection_
      Src: /src/libevent/test/regress_http.c:2850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2847
    functionDepth: 8
    functionLinenumber: 2847
    functionLinenumberEnd: 2851
    functionName: http_close_detection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_close_detection_
    linkageType: ''
    returnType: void
    signature: void http_close_detection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_close_detection_
      Src: /src/libevent/test/regress_http.c:2855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2852
    functionDepth: 8
    functionLinenumber: 2852
    functionLinenumberEnd: 2856
    functionName: http_close_detection_delay_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_close_detection_
    linkageType: ''
    returnType: void
    signature: void http_close_detection_delay_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:2867,1
    - Dst: evhttp_bind_socket
      Src: /src/libevent/test/regress_http.c:2868,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2870,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2873,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:2876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2858
    functionDepth: 5
    functionLinenumber: 2858
    functionLinenumberEnd: 2877
    functionName: http_highport_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_free
    - evhttp_bind_socket
    - evhttp_new
    - tt_fail_msg
    linkageType: ''
    returnType: void
    signature: void http_highport_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:2884,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2886,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2886,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2887,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2887,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2888,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2888,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2889,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2889,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2890,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2890,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2891,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2891,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2892,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2892,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2879
    functionDepth: 2
    functionLinenumber: 2879
    functionLinenumberEnd: 2895
    functionName: http_bad_header_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - TAILQ_INIT
    - evhttp_add_header
    - tt_want
    - evhttp_clear_headers
    linkageType: ''
    returnType: void
    signature: void http_bad_header_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2901,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2902,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2903,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - headers
    - key
    - value
    argTypes:
    - struct evkeyvalq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2897
    functionDepth: 2
    functionLinenumber: 2897
    functionLinenumberEnd: 2906
    functionName: validate_header
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_find_header
    - tt_want
    - tt_assert
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int validate_header(\n\tconst struct evkeyvalq* headers,\n\tconst
      char *key, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:2914,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2916,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2917,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2917,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2918,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2919,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2921,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2922,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2922,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2923,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2923,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2924,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2925,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2927,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2928,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2928,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2929,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2930,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2932,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2933,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2933,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2934,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2935,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2937,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2938,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2938,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2939,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2940,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2942,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2943,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2944,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2946,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2947,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2947,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2948,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2949,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2951,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2952,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2953,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2953,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2954,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2954,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2955,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2957,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2958,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2959,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2961,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2962,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2963,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2965,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2966,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2967,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2969,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2970,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2971,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2971,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2972,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2972,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2973,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2973,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2974,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2908
    functionDepth: 4
    functionLinenumber: 2908
    functionLinenumberEnd: 2978
    functionName: http_parse_query_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query
    - evhttp_clear_headers
    - TAILQ_INIT
    - validate_header
    - tt_int_op
    - tt_want
    linkageType: ''
    returnType: void
    signature: void http_parse_query_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:2985,1
    - Dst: evhttp_parse_query_str
      Src: /src/libevent/test/regress_http.c:2987,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2988,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2988,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2989,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2990,1
    - Dst: evhttp_parse_query_str
      Src: /src/libevent/test/regress_http.c:2992,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2993,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2993,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2994,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2995,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2979
    functionDepth: 4
    functionLinenumber: 2979
    functionLinenumberEnd: 2999
    functionName: http_parse_query_str_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_parse_query_str
    - evhttp_clear_headers
    - TAILQ_INIT
    - validate_header
    - evhttp_find_header
    - tt_int_op
    - tt_want
    linkageType: ''
    returnType: void
    signature: void http_parse_query_str_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:3006,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3009,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3010,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3010,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3011,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3012,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3015,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3016,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3016,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3017,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3018,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3021,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3022,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3023,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3025,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3026,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3027,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3029,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3030,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3031,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3034,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3035,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3035,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3036,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3036,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3037,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3038,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3040,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3041,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3041,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3042,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3042,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3043,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3044,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3046,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3047,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3047,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3048,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3048,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3049,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3050,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3000
    functionDepth: 4
    functionLinenumber: 3000
    functionLinenumberEnd: 3055
    functionName: http_parse_query_str_flags_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query_str_flags
    - evhttp_clear_headers
    - TAILQ_INIT
    - validate_header
    - tt_int_op
    - tt_want
    linkageType: ''
    returnType: void
    signature: void http_parse_query_str_flags_test(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_http.c:3080,1
    - Dst: strstr
      Src: /src/libevent/test/regress_http.c:3084,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3090,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3090,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3091,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3091,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3092,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3092,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3127,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3128,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3129,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3130,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3131,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3132,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3133,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3134,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3135,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3136,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3137,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3138,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3139,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3140,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3141,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3142,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3143,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3144,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3145,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3146,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3147,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3149,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3150,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3151,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3152,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3153,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3154,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3155,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3156,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3157,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3158,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3159,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3160,1
    - Dst: UNI
      Src: /src/libevent/test/regress_http.c:3163,1
    - Dst: UNI
      Src: /src/libevent/test/regress_http.c:3164,1
    - Dst: UNI
      Src: /src/libevent/test/regress_http.c:3165,1
    - Dst: evhttp_uri_new
      Src: /src/libevent/test/regress_http.c:3169,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3170,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3170,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3171,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3171,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3173,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3173,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3175,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3175,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3176,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3176,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3177,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3177,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3178,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3178,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3179,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3180,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3181,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3182,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3182,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3183,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3183,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3184,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3184,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3185,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3185,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3185,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3186,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3186,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3186,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3187,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3187,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3188,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3188,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3189,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3190,1
    - Dst: evhttp_uri_new
      Src: /src/libevent/test/regress_http.c:3192,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3194,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3194,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3195,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3195,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3196,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3196,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3197,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/test/regress_http.c:3197,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3198,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3198,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3199,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3199,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3200,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3200,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3201,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3201,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3202,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3202,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3203,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3203,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3204,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3204,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3206,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3206,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3207,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3207,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3208,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/test/regress_http.c:3208,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3209,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/test/regress_http.c:3209,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3210,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3210,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3211,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3211,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3212,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3212,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3213,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3213,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3214,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3214,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3215,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3215,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3216,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3216,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3217,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3217,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3218,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3218,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3219,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3219,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3220,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3220,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3221,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3221,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3222,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3222,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3223,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3223,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3224,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3224,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3225,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3225,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3226,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3226,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3227,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3227,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3228,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3228,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3229,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3232,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3233,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3233,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3233,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3234,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3234,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3234,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3235,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3235,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3235,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3236,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3236,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3236,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3237,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3237,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3238,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3238,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3239,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3239,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3240,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3241,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3243,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3244,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3244,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3244,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3245,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3245,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3245,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3246,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3246,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3246,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3247,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3247,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3248,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3248,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3249,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3249,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3250,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3250,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3251,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3252,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3254,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3255,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3255,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3255,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3256,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3256,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3256,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3257,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3257,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3257,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3258,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3258,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3258,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3259,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3259,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3260,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3260,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3261,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3261,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3262,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3263,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3265,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3266,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3266,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3266,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3267,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3267,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3267,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3268,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3268,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3268,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3269,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3269,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3270,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3270,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3271,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3271,1
    - Dst: tt_want_str_op
      Src: /src/libevent/test/regress_http.c:3272,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3272,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3273,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3274,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3276,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3277,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3277,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3277,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3278,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3278,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3278,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3279,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3279,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3279,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3280,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3280,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3281,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3281,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3282,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3282,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3283,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3283,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3284,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3285,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3287,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3288,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3288,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3288,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3289,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3289,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3289,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3290,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3290,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3290,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3291,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3291,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3292,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3292,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3293,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3293,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3294,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3294,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3295,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3296,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3298,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3299,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3299,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3299,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3300,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3300,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3300,1
    - Dst: tt_want_str_op
      Src: /src/libevent/test/regress_http.c:3301,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3301,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3302,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3302,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3303,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3303,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3304,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3304,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3305,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3305,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3306,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3307,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3309,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3310,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3310,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3310,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3311,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3311,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3311,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3312,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3312,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3312,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3313,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3313,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3314,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3314,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3315,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3315,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3316,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3316,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3317,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3318,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3320,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3321,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3321,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3321,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3322,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3322,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3322,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3323,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3323,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3323,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3324,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3324,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3324,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3325,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3325,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3326,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3326,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3327,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3327,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3328,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3329,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3331,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3332,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3332,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3332,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3333,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3333,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3333,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3334,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3334,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3334,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3335,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3335,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3335,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3336,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3336,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3337,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3337,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3338,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3338,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3339,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3340,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3342,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3343,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3343,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3343,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3344,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3344,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3344,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3345,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3345,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3345,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3346,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3346,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3346,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3347,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3347,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3348,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3348,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3349,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3349,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3350,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3351,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3353,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3354,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3354,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3354,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3355,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3355,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3355,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3356,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3356,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3356,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3357,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3357,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3357,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3358,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3358,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3359,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3359,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3360,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3360,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3361,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3362,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3364,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3365,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3365,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3365,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3366,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3366,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3366,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3367,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3367,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3367,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3368,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3368,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3369,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3369,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3369,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3370,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3370,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3370,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3371,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3371,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3371,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3372,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3373,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3375,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3376,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3376,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3376,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3377,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3377,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3377,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3378,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3378,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3378,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3379,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3379,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3380,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3380,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3380,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3381,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3381,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3382,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3382,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3382,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3383,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3384,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3386,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3387,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3387,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3387,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3388,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3388,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3388,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3389,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3389,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3389,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3390,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3390,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3391,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3391,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3391,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3392,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3392,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3393,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3393,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3393,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3394,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3395,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3397,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3398,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3398,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3398,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3399,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3399,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3400,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3400,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3400,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3401,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3401,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3402,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3402,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3402,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3403,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3403,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3404,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3404,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3405,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3406,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3408,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3409,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3410,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3410,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3411,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3411,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3412,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3412,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3412,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3413,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3413,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3414,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3414,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3414,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3415,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3415,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3416,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3416,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3417,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3418,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3420,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3421,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3422,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3422,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3423,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3423,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3424,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3424,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3425,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3425,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3426,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3426,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3426,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3427,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3427,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3427,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3428,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3428,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3428,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3429,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3430,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3432,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3433,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3434,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3434,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3435,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3435,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3436,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3436,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3437,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3437,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3438,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3438,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3438,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3439,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3439,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3440,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3440,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3441,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3442,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3444,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3445,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3446,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3446,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3447,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3447,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3448,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3448,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3449,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3449,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3450,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3450,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3450,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3451,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3451,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3451,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3452,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3452,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3452,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3453,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3454,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3456,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3457,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3458,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3458,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3459,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3459,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3460,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3460,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3461,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3461,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3462,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3462,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3462,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3463,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3463,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3464,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3464,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3464,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3465,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3466,1
    - Dst: URI_PARSE_FLAGS
      Src: /src/libevent/test/regress_http.c:3469,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3470,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3470,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3470,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3471,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3471,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3471,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3472,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3472,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3472,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3473,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3473,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3473,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3474,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3474,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3475,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3475,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3476,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3476,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3477,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3479,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3479,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3480,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3480,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3480,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3481,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3483,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3483,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3484,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3484,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3484,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3485,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 337
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3057
    functionDepth: 3
    functionLinenumber: 3057
    functionLinenumberEnd: 3493
    functionName: http_parse_uri_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - URI_PARSE
    - URI_PARSE_FLAGS
    - evhttp_uri_get_port
    - strstr
    - evhttp_uri_set_scheme
    - evhttp_uri_get_host
    - evhttp_uri_get_scheme
    - evhttp_uri_set_port
    - NCF
    - evhttp_uri_new
    - evhttp_uri_join
    - TT_URI
    - evhttp_uri_set_fragment
    - tt_want_str_op
    - tt_want
    - evhttp_uri_set_host
    - evhttp_uri_free
    - evhttp_uri_get_path
    - evhttp_uri_set_path
    - evhttp_uri_set_userinfo
    - evhttp_uri_get_fragment
    - evhttp_uri_set_query
    - UNI
    - evhttp_uri_get_userinfo
    - evhttp_uri_get_query
    - BAD
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_parse_uri_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uri
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3066
    functionDepth: 0
    functionLinenumber: 3066
    functionLinenumberEnd: 3068
    functionName: URI_PARSE_FLAGS
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_PARSE_FLAGS(uri, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uri
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3068
    functionDepth: 0
    functionLinenumber: 3068
    functionLinenumberEnd: 3070
    functionName: URI_PARSE
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_PARSE(uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - want
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3071
    functionDepth: 0
    functionLinenumber: 3071
    functionLinenumberEnd: 3078
    functionName: TT_URI
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_URI(want)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3095
    functionDepth: 0
    functionLinenumber: 3095
    functionLinenumberEnd: 3099
    functionName: BAD
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAD(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3100
    functionDepth: 0
    functionLinenumber: 3100
    functionLinenumberEnd: 3114
    functionName: NCF
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCF(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3114
    functionDepth: 0
    functionLinenumber: 3114
    functionLinenumberEnd: 3126
    functionName: UNI
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNI(s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3534,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3535,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3536,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3537,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3540,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3541,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3542,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3543,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3544,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3547,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3548,1
    - Dst: evhttp_uriencode
      Src: /src/libevent/test/regress_http.c:3551,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3552,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:3553,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3554,1
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:3558,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/test/regress_http.c:3559,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3560,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3561,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:3562,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3563,1
    - Dst: DEC
      Src: /src/libevent/test/regress_http.c:3568,1
    - Dst: DEC
      Src: /src/libevent/test/regress_http.c:3571,1
    - Dst: DEC
      Src: /src/libevent/test/regress_http.c:3573,1
    - Dst: evhttp_uridecode
      Src: /src/libevent/test/regress_http.c:3577,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3578,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3579,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:3579,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3580,1
    - Dst: evhttp_uridecode
      Src: /src/libevent/test/regress_http.c:3585,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3586,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:3586,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3587,1
    - Dst: OLD_DEC
      Src: /src/libevent/test/regress_http.c:3592,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3597,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3495
    functionDepth: 2
    functionLinenumber: 3495
    functionLinenumberEnd: 3603
    functionName: http_uriencode_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - tt_int_op
    - OLD_DEC
    - tt_assert
    - malloc
    - evhttp_uriencode
    - evhttp_uridecode
    - memcmp
    - evhttp_decode_uri_internal
    - ENC
    - tt_str_op
    - DEC
    linkageType: ''
    returnType: void
    signature: void http_uriencode_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - from
    - ','
    - want
    - ','
    - plus
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3515
      start: 3502
    functionDepth: 0
    functionLinenumber: 3502
    functionLinenumberEnd: 3515
    functionName: ENC
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENC(from,want,plus)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - from
    - ','
    - want
    - ','
    - dp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3524
      start: 3516
    functionDepth: 0
    functionLinenumber: 3516
    functionLinenumberEnd: 3524
    functionName: DEC
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC(from,want,dp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - want
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3525
    functionDepth: 0
    functionLinenumber: 3525
    functionLinenumberEnd: 3532
    functionName: OLD_DEC
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OLD_DEC(from,want)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_http.c:3616,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3617,1
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:3618,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:3620,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3621,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:3624,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3625,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:3627,1
    - Dst: bufferevent_base_set
      Src: /src/libevent/test/regress_http.c:3629,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:3637,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3637,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:3639,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:3641,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:3642,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:3644,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3646,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_http.c:3650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3605
    functionDepth: 8
    functionLinenumber: 3605
    functionLinenumberEnd: 3651
    functionName: http_base_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - http_connect
    - tt_assert
    - event_base_free
    - bufferevent_socket_new
    - evutil_closesocket
    - bufferevent_write
    - bufferevent_base_set
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - tt_int_op
    - event_base_new
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_base_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3658
    functionDepth: 2
    functionLinenumber: 3658
    functionLinenumberEnd: 3663
    functionName: http_incomplete_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_incomplete_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3665
    functionDepth: 2
    functionLinenumber: 3665
    functionLinenumberEnd: 3677
    functionName: http_incomplete_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_incomplete_errorcb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/libevent/test/regress_http.c:3685,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3687,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:3687,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:3689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3679
    functionDepth: 2
    functionLinenumber: 3679
    functionLinenumberEnd: 3692
    functionName: http_incomplete_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - shutdown
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void http_incomplete_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:3702,1
    - Dst: evhttp_set_timeout
      Src: /src/libevent/test/regress_http.c:3707,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:3709,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3710,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:3713,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3714,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:3716,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:3724,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3724,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:3726,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:3728,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:3730,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_http.c:3731,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:3733,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:3735,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:3739,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:3742,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:3745,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3748,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:3751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - data
    - use_timeout
    - ssl
    argTypes:
    - struct basic_test_data*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3694
    functionDepth: 8
    functionLinenumber: 3694
    functionLinenumberEnd: 3752
    functionName: http_incomplete_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evutil_gettimeofday
    - event_base_dispatch
    - tt_assert
    - http_connect
    - evhttp_set_timeout
    - evutil_timersub
    - evutil_closesocket
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - create_bev
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_incomplete_test_(struct basic_test_data *data, int use_timeout,
      int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:3754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3753
    functionDepth: 9
    functionLinenumber: 3753
    functionLinenumberEnd: 3754
    functionName: http_incomplete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void http_incomplete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:3756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3756
      start: 3755
    functionDepth: 9
    functionLinenumber: 3755
    functionLinenumberEnd: 3756
    functionName: http_incomplete_timeout_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void http_incomplete_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3767
      start: 3763
    functionDepth: 0
    functionLinenumber: 3763
    functionLinenumberEnd: 3767
    functionName: http_chunked_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_chunked_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:3786,1
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/test/regress_http.c:3789,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3789,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/test/regress_http.c:3793,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3793,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:3797,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:3797,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3798,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:3801,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:3801,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3802,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3805,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3805,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3809,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3810,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3813,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3815,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3815,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3815,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:3819,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3819,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3821,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3821,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3825,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3827,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3829,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3829,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3829,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:3833,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3833,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3835,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3835,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3839,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3840,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3843,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3845,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3845,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3845,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:3849,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3849,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3851,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3851,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3855,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3856,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3859,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:3866,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3868,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3869
      start: 3769
    functionDepth: 6
    functionLinenumber: 3769
    functionLinenumberEnd: 3869
    functionName: http_chunked_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - evhttp_request_free
    - evbuffer_readln
    - evhttp_parse_firstline_
    - strncmp
    - event_base_loopexit
    - evhttp_request_new
    - evhttp_parse_headers_
    - bufferevent_get_input
    - evhttp_request_get_input_headers
    - evbuffer_pullup
    - evbuffer_drain
    - evhttp_find_header
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_chunked_errorcb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3874,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:3874,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:3876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3871
    functionDepth: 2
    functionLinenumber: 3871
    functionLinenumberEnd: 3879
    functionName: http_chunked_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void http_chunked_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:3884,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3885,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3886,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:3889,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:3889,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3891,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3892,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3895,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:3895,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3896,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3897,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3900,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3900,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:3900,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3903,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3904,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3881
    functionDepth: 4
    functionLinenumber: 3881
    functionLinenumberEnd: 3909
    functionName: http_chunked_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - fprintf
    - strncmp
    - event_base_loopexit
    - exit
    - evhttp_request_get_input_headers
    - evbuffer_get_length
    - evbuffer_pullup
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_chunked_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:3914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3911
    functionDepth: 1
    functionLinenumber: 3911
    functionLinenumberEnd: 3915
    functionName: http_send_chunk_test_read_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test_read_cb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:3920,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:3922,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3925,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:3926,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3927,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3927,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3929,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3930,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3933,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:3936,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:3937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3941
      start: 3917
    functionDepth: 9
    functionLinenumber: 3917
    functionLinenumberEnd: 3941
    functionName: http_send_chunk_test_write_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - evbuffer_add
    - bufferevent_enable
    - strlen
    - evbuffer_add_printf
    - TT_BLATHER
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test_write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3945,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:3948,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3953,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3955,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3960,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3963,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3942
    functionDepth: 6
    functionLinenumber: 3942
    functionLinenumberEnd: 3967
    functionName: http_send_chunk_test_error_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - evbuffer_readln
    - event_base_loopexit
    - bufferevent_get_input
    - evbuffer_get_length
    - TT_BLATHER
    - strcmp
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test_error_cb(struct bufferevent *bev, short what,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:3976,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:3981,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3982,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:3984,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3985,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:3987,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4000,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4000,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4002,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4007,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4011,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 3968
    functionDepth: 8
    functionLinenumber: 3968
    functionLinenumberEnd: 4014
    functionName: http_send_chunk_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - http_connect
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - create_bev
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:4019,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4020,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4022,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:4024,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4025,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4025,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4026,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4027,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4029,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:4033,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:4034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4038
      start: 4016
    functionDepth: 9
    functionLinenumber: 4016
    functionLinenumberEnd: 4038
    functionName: http_send_chunk_malformed_test_write_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    - evbuffer_add
    - bufferevent_enable
    - strlen
    - evbuffer_add_printf
    - TT_BLATHER
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_malformed_test_write_cb(struct bufferevent *bev,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:4042,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4045,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:4046,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:4047,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:4050,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4039
    functionDepth: 6
    functionLinenumber: 4039
    functionLinenumberEnd: 4052
    functionName: http_send_chunk_malformed_test_error_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - evbuffer_readln
    - event_base_loopexit
    - bufferevent_get_input
    - TT_BLATHER
    - tt_str_op
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_malformed_test_error_cb(struct bufferevent *bev,
      short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4061,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4066,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4067,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4069,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4070,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:4072,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4085,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4085,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4086,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4090,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4053
    functionDepth: 8
    functionLinenumber: 4053
    functionLinenumberEnd: 4093
    functionName: http_send_chunk_malformed_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - http_connect
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - create_bev
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_malformed_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4107,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4112,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4113,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4116,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4117,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:4119,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4129,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4129,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4131,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4133,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4135,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4138,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_http.c:4139,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4141,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4143,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4146,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4147,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4149,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4154,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4157,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4157,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4160,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4161,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4164,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4166,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4171,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4095
    functionDepth: 8
    functionLinenumber: 4095
    functionLinenumberEnd: 4174
    functionName: http_chunk_out_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - bufferevent_write
    - strlen
    - evutil_timersub
    - evutil_gettimeofday
    - evhttp_connection_base_bufferevent_new
    - tt_assert
    - http_connect
    - evhttp_connection_free
    - evhttp_free
    - bufferevent_free
    - create_bev
    - bufferevent_setcb
    - evhttp_request_get_output_headers
    - evhttp_request_new
    - evhttp_add_header
    - evhttp_make_request
    - http_setup
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_chunk_out_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:4176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4175
    functionDepth: 9
    functionLinenumber: 4175
    functionLinenumberEnd: 4176
    functionName: http_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void http_chunk_out_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4186,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4191,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4194,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4201,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4205,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4205,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4208,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4210,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4213,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4217,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4220
      start: 4178
    functionDepth: 7
    functionLinenumber: 4178
    functionLinenumberEnd: 4220
    functionName: http_stream_out_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_connection_base_bufferevent_new
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_add_header
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    - create_bev
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_stream_out_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_out_test_impl
      Src: /src/libevent/test/regress_http.c:4222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4221
    functionDepth: 8
    functionLinenumber: 4221
    functionLinenumberEnd: 4222
    functionName: http_stream_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_stream_out_test_impl
    linkageType: ''
    returnType: void
    signature: void http_stream_out_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4229,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:4230,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:4231,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_http.c:4234,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:4234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4235
      start: 4224
    functionDepth: 6
    functionLinenumber: 4224
    functionLinenumberEnd: 4235
    functionName: http_stream_in_chunk
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - fprintf
    - evbuffer_add_buffer
    - exit
    linkageType: ''
    returnType: void
    signature: void http_stream_in_chunk(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4240,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:4240,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:4241,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:4242,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4246
      start: 4237
    functionDepth: 2
    functionLinenumber: 4237
    functionLinenumberEnd: 4246
    functionName: http_stream_in_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - fprintf
    - event_base_loopexit
    - exit
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void http_stream_in_done(struct evhttp_request *req, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:4256,1
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4259,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4263,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4264,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4266,1
    - Dst: evhttp_request_set_chunked_cb
      Src: /src/libevent/test/regress_http.c:4267,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4270,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4271,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4274,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4276,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_http.c:4277,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4278,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:4280,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:4283,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:4283,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4284,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:4290,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4292,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - data
    - url
    - expected_len
    - expected
    argTypes:
    - struct basic_test_data*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4295
      start: 4251
    functionDepth: 7
    functionLinenumber: 4251
    functionLinenumberEnd: 4295
    functionName: http_stream_in_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - tt_assert
    - evbuffer_new
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_request_set_chunked_cb
    - memcmp
    - evhttp_free
    - evbuffer_free
    - evbuffer_get_length
    - evbuffer_pullup
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - TT_DIE
    linkageType: ''
    returnType: void
    signature: "void http_stream_in_test_(struct basic_test_data *data, char const
      *url,\n    size_t expected_len, char const *expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_in_test_
      Src: /src/libevent/test/regress_http.c:4300,1
    - Dst: http_stream_in_test_
      Src: /src/libevent/test/regress_http.c:4303,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4297
    functionDepth: 8
    functionLinenumber: 4297
    functionLinenumberEnd: 4305
    functionName: http_stream_in_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_stream_in_test_
    - strlen
    linkageType: ''
    returnType: void
    signature: void http_stream_in_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4310,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4310,1
    - Dst: evhttp_cancel_request
      Src: /src/libevent/test/regress_http.c:4313,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4315
      start: 4307
    functionDepth: 5
    functionLinenumber: 4307
    functionLinenumberEnd: 4315
    functionName: http_stream_in_cancel_chunk
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - event_base_loopexit
    - evhttp_cancel_request
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_stream_in_cancel_chunk(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:4321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4322
      start: 4317
    functionDepth: 1
    functionLinenumber: 4317
    functionLinenumberEnd: 4322
    functionName: http_stream_in_cancel_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_fail_msg
    linkageType: ''
    returnType: void
    signature: void http_stream_in_cancel_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4331,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4333,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4334,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4336,1
    - Dst: evhttp_request_set_chunked_cb
      Src: /src/libevent/test/regress_http.c:4337,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4340,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4341,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4344,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4348,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4324
    functionDepth: 7
    functionLinenumber: 4324
    functionLinenumberEnd: 4351
    functionName: http_stream_in_cancel_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_request_set_chunked_cb
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    linkageType: ''
    returnType: void
    signature: void http_stream_in_cancel_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:4357,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4363,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4365,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4353
    functionDepth: 4
    functionLinenumber: 4353
    functionLinenumberEnd: 4371
    functionName: http_connection_fail_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_free
    - event_base_loopexit
    - evhttp_connection_get_base
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void http_connection_fail_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4383,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4389,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4391,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4394,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4396,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4403,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4404,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4406,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4407,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4410,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4375
    functionDepth: 7
    functionLinenumber: 4375
    functionLinenumberEnd: 4416
    functionName: http_connection_fail_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_connection_base_bufferevent_new
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_make_request
    - http_setup
    - evhttp_free
    - create_bev
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_connection_fail_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_fail_test_impl
      Src: /src/libevent/test/regress_http.c:4418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4417
    functionDepth: 8
    functionLinenumber: 4417
    functionLinenumberEnd: 4418
    functionName: http_connection_fail_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_fail_test_impl
    linkageType: ''
    returnType: void
    signature: void http_connection_fail_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4423,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4424,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4424,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:4425,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:4425,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4426,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_http.c:4429,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4429,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:4429,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4420
    functionDepth: 2
    functionLinenumber: 4420
    functionLinenumberEnd: 4434
    functionName: http_connection_retry_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_request_get_response_code
    - evhttp_request_get_input_buffer
    - tt_assert
    - event_base_loopexit
    - evhttp_request_get_input_headers
    - tt_uint_op
    - evbuffer_get_length
    - evhttp_find_header
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4448
      start: 4443
    functionDepth: 0
    functionLinenumber: 4443
    functionLinenumberEnd: 4448
    functionName: http_make_web_server
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_setup
    linkageType: ''
    returnType: void
    signature: void http_make_web_server(evutil_socket_t fd, short what, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4458,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4465,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:4466,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4468,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:4469,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:4469,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4472,1
    - Dst: bufferevent_mbedtls_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4477,1
    - Dst: evhttp_connection_base_bufferevent_reuse_new
      Src: /src/libevent/test/regress_http.c:4482,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4484,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4487,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4489,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4492,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4493,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4495,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4496,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4498,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4499,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:4502,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:4502,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4507,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - arg
    - ssl
    - dirty
    - preexisting
    - uri
    argTypes:
    - void*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4510
      start: 4450
    functionDepth: 8
    functionLinenumber: 4450
    functionLinenumberEnd: 4510
    functionName: http_simple_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_connection_base_bufferevent_new
    - event_base_dispatch
    - http_connect
    - tt_assert
    - bufferevent_openssl_set_allow_dirty_shutdown
    - bufferevent_getfd
    - evhttp_request_new
    - evhttp_connection_base_bufferevent_reuse_new
    - evhttp_free
    - bufferevent_mbedtls_set_allow_dirty_shutdown
    - evhttp_make_request
    - evhttp_connection_set_local_address
    - http_setup
    - evhttp_connection_free
    - tt_fd_op
    - create_bev
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_simple_test_impl(void *arg, int ssl, int dirty, int preexisting,
      const char *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4511
    functionDepth: 9
    functionLinenumber: 4511
    functionLinenumberEnd: 4512
    functionName: http_simple_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4514
      start: 4513
    functionDepth: 9
    functionLinenumber: 4513
    functionLinenumberEnd: 4514
    functionName: http_simple_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4516
      start: 4515
    functionDepth: 9
    functionLinenumber: 4515
    functionLinenumberEnd: 4516
    functionName: http_simple_nonconformant_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_nonconformant_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4517
    functionDepth: 9
    functionLinenumber: 4517
    functionLinenumberEnd: 4518
    functionName: http_simple_nonconformant_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_nonconformant_preexisting_test(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:4525,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_http.c:4527,1
    - Dst: init_ssl
      Src: /src/libevent/test/regress_http.c:4533,1
    - Dst: evhttp_bound_set_bevcb
      Src: /src/libevent/test/regress_http.c:4534,1
    - Dst: evhttp_bound_set_bevcb
      Src: /src/libevent/test/regress_http.c:4539,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_http.c:4543,1
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/test/regress_http.c:4543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - http
    - port
    - pport
    - mask
    argTypes:
    - struct evhttp*
    - ev_uint16_t
    - ev_uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4551
      start: 4520
    functionDepth: 2
    functionLinenumber: 4520
    functionLinenumberEnd: 4551
    functionName: https_bind_ssl_bevcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_bind_socket_with_handle
    - evhttp_bound_socket_get_fd
    - event_errx
    - evhttp_bound_set_bevcb
    - init_ssl
    - regress_get_socket_port
    linkageType: ''
    returnType: int
    signature: int https_bind_ssl_bevcb(struct evhttp *http, ev_uint16_t port, ev_uint16_t
      *pport, int mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:4562,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4563,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:4565,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4567,1
    - Dst: https_bind_ssl_bevcb
      Src: /src/libevent/test/regress_http.c:4567,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/test/regress_http.c:4569,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4571,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4574,1
    - Dst: bufferevent_mbedtls_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4577,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4580,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4581,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:4583,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4585,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4587,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4588,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4590,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4590,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4592,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:4593,1
    - Dst: TT_GRIPE
      Src: /src/libevent/test/regress_http.c:4594,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4599,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4603,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - arg
    - http_port
    - https_port
    - mask
    argTypes:
    - void*
    - ev_uint16_t
    - ev_uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4607
      start: 4552
    functionDepth: 7
    functionLinenumber: 4552
    functionLinenumberEnd: 4607
    functionName: https_per_socket_bevcb_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - event_base_dispatch
    - bufferevent_mbedtls_set_allow_dirty_shutdown
    - evhttp_connection_set_local_address
    - TT_GRIPE
    - evhttp_bind_socket_with_handle
    - https_bind_ssl_bevcb
    - evhttp_connection_base_bufferevent_new
    - evhttp_new
    - evhttp_set_gencb
    - tt_assert
    - evhttp_connection_set_timeout
    - evhttp_connection_free
    - evhttp_free
    - create_bev
    - evhttp_request_get_output_headers
    - bufferevent_openssl_set_allow_dirty_shutdown
    - evhttp_request_new
    - evhttp_add_header
    - evhttp_make_request
    linkageType: ''
    returnType: void
    signature: void https_per_socket_bevcb_impl(void *arg, ev_uint16_t http_port,
      ev_uint16_t https_port, int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: https_per_socket_bevcb_impl
      Src: /src/libevent/test/regress_http.c:4609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4609
      start: 4608
    functionDepth: 8
    functionLinenumber: 4608
    functionLinenumberEnd: 4609
    functionName: https_per_socket_bevcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - https_per_socket_bevcb_impl
    linkageType: ''
    returnType: void
    signature: void https_per_socket_bevcb(void *arg, int ssl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4620,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4626,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4628,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4629,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4630,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4632,1
    - Dst: evhttp_connection_set_flags
      Src: /src/libevent/test/regress_http.c:4632,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:4634,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4636,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4643,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4644,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4647,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4647,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4649,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4651,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4654,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4655,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4656,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_http.c:4657,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4658,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4660,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:4668,1
    - Dst: evhttp_connection_set_timeout_tv
      Src: /src/libevent/test/regress_http.c:4673,1
    - Dst: evhttp_connection_set_initial_retry_tv
      Src: /src/libevent/test/regress_http.c:4674,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:4676,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4678,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4679,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4682,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4682,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4684,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4686,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4689,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4690,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4691,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_http.c:4694,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4696,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:4704,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:4705,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4707,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4708,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4711,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4711,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4713,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4715,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:4721,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:4724,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4726,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4727,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4728,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_http.c:4730,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4732,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4736,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4738,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 65
    argCount: 4
    argNames:
    - arg
    - addr
    - dns_base
    - ssl
    argTypes:
    - void*
    - char*
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4739
      start: 4611
    functionDepth: 7
    functionLinenumber: 4611
    functionLinenumberEnd: 4739
    functionName: http_connection_retry_test_basic
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - evhttp_connection_set_flags
    - evhttp_connection_set_local_address
    - test_timeval_diff_leq
    - evutil_timersub
    - evutil_gettimeofday
    - evhttp_connection_base_bufferevent_new
    - evhttp_connection_set_timeout_tv
    - evhttp_connection_set_retries
    - tt_assert
    - evhttp_connection_set_timeout
    - evutil_timerclear
    - evhttp_connection_free
    - evhttp_free
    - create_bev
    - regress_clean_dnsserver
    - evhttp_connection_set_initial_retry_tv
    - evhttp_request_get_output_headers
    - event_base_once
    - evhttp_request_new
    - evhttp_add_header
    - evhttp_make_request
    - http_setup
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_test_basic(void *arg, const char *addr,
      struct evdns_base *dns_base, int ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4749,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:4749,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:4750,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4751,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:4755,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:4756,1
    - Dst: http_connection_retry_test_basic
      Src: /src/libevent/test/regress_http.c:4758,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:4762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4764
      start: 4741
    functionDepth: 9
    functionLinenumber: 4741
    functionLinenumberEnd: 4764
    functionName: http_connection_retry_conn_address_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - http_connection_retry_test_basic
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - evutil_snprintf
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_conn_address_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_conn_address_test_impl
      Src: /src/libevent/test/regress_http.c:4766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4766
      start: 4765
    functionDepth: 10
    functionLinenumber: 4765
    functionLinenumberEnd: 4766
    functionName: http_connection_retry_conn_address_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_conn_address_test_impl
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_conn_address_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_basic
      Src: /src/libevent/test/regress_http.c:4771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4772
      start: 4768
    functionDepth: 8
    functionLinenumber: 4768
    functionLinenumberEnd: 4772
    functionName: http_connection_retry_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_basic
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_impl
      Src: /src/libevent/test/regress_http.c:4775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4773
    functionDepth: 9
    functionLinenumber: 4773
    functionLinenumberEnd: 4775
    functionName: http_connection_retry_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_htmlescape
      Src: /src/libevent/test/regress_http.c:4783,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4784,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:4785,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:4786,1
    - Dst: evhttp_htmlescape
      Src: /src/libevent/test/regress_http.c:4788,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4789,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:4790,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:4792,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4793,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4794,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:4794,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4795,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:4795,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4796,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/test/regress_http.c:4796,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4797,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/test/regress_http.c:4797,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4798,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:4798,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:4802,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4805
      start: 4777
    functionDepth: 5
    functionLinenumber: 4777
    functionLinenumberEnd: 4805
    functionName: http_primitives
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - tt_int_op
    - evhttp_new
    - tt_assert
    - evhttp_htmlescape
    - evhttp_free
    - evhttp_set_cb
    - tt_str_op
    - evhttp_del_cb
    linkageType: ''
    returnType: void
    signature: void http_primitives(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4815,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_http.c:4820,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4822,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4823,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:4826,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_http.c:4827,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:4828,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4843,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4843,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4846,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4848,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4849,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4850,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4853,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:4855,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4858
      start: 4807
    functionDepth: 8
    functionLinenumber: 4807
    functionLinenumberEnd: 4858
    functionName: http_multi_line_header_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - tt_assert
    - http_connect
    - tt_ptr_op
    - bufferevent_socket_new
    - evutil_closesocket
    - bufferevent_write
    - strlen
    - http_setup
    - evhttp_free
    - bufferevent_free
    - tt_int_op
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_multi_line_header_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:4864,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:4865,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4870
      start: 4860
    functionDepth: 2
    functionLinenumber: 4860
    functionLinenumberEnd: 4870
    functionName: http_request_bad
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_request_bad(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4879,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4883,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4884,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4891,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4894,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4894,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4897,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4898,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4901,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4905,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4907,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4872
    functionDepth: 7
    functionLinenumber: 4872
    functionLinenumberEnd: 4908
    functionName: http_negative_content_length_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_negative_content_length_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4914,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4915,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4915,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4911
    functionDepth: 2
    functionLinenumber: 4911
    functionLinenumberEnd: 4918
    functionName: http_data_length_constraints_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - event_base_loopexit
    - tt_int_op
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void http_data_length_constraints_test_done(struct evhttp_request *req,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4922,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4923,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4923,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4926
      start: 4919
    functionDepth: 2
    functionLinenumber: 4919
    functionLinenumberEnd: 4926
    functionName: http_large_entity_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - event_base_loopexit
    - tt_int_op
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void http_large_entity_test_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4930,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4931,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4931,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4934
      start: 4927
    functionDepth: 2
    functionLinenumber: 4927
    functionLinenumberEnd: 4934
    functionName: http_expectation_failed_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - event_base_loopexit
    - tt_int_op
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void http_expectation_failed_done(struct evhttp_request *req, void
      *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4947,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4954,1
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:4956,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:4957,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4960,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4961,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4962,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4965,1
    - Dst: evhttp_connection_set_flags
      Src: /src/libevent/test/regress_http.c:4965,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4967,1
    - Dst: evhttp_set_max_headers_size
      Src: /src/libevent/test/regress_http.c:4969,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4970,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4972,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4973,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4974,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4974,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4975,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4975,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4976,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4977,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4978,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4980,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4982,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4983,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4984,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4984,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4986,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4987,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4988,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4990,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/test/regress_http.c:4992,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4993,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4997,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4998,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4998,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:4999,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:4999,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5000,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5001,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5002,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5004,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5006,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5007,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5007,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5008,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5008,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5009,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5009,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5010,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5011,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5012,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5014,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5018,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5019,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5019,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5020,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5020,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5021,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5021,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5022,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5023,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5024,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5026,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5030,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5031,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5031,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5032,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5032,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5033,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5033,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5034,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5035,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5036,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5038,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5043,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5045,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:5047,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 85
    argCount: 2
    argNames:
    - arg
    - read_on_write_error
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5048
      start: 4936
    functionDepth: 9
    functionLinenumber: 4936
    functionLinenumberEnd: 5048
    functionName: http_data_length_constraints_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - TT_BLATHER
    - evhttp_connection_set_local_address
    - evhttp_connection_set_flags
    - evhttp_request_get_output_buffer
    - tt_assert
    - malloc
    - evhttp_set_max_body_size
    - evhttp_connection_free
    - evhttp_free
    - memset
    - evhttp_request_get_output_headers
    - free
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evbuffer_add_printf
    - evhttp_make_request
    - http_setup
    - evhttp_set_max_headers_size
    linkageType: ''
    returnType: void
    signature: void http_data_length_constraints_test_impl(void *arg, int read_on_write_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_data_length_constraints_test_impl
      Src: /src/libevent/test/regress_http.c:5050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5050
      start: 5049
    functionDepth: 10
    functionLinenumber: 5049
    functionLinenumberEnd: 5050
    functionName: http_data_length_constraints_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_data_length_constraints_test_impl
    linkageType: ''
    returnType: void
    signature: void http_data_length_constraints_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_data_length_constraints_test_impl
      Src: /src/libevent/test/regress_http.c:5052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5052
      start: 5051
    functionDepth: 10
    functionLinenumber: 5051
    functionLinenumberEnd: 5052
    functionName: http_read_on_write_error_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_data_length_constraints_test_impl
    linkageType: ''
    returnType: void
    signature: void http_read_on_write_error_test(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5064,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5069,1
    - Dst: evhttp_set_flags
      Src: /src/libevent/test/regress_http.c:5069,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/test/regress_http.c:5070,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5072,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5073,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:5074,1
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:5081,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5082,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5089,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5090,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5091,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5091,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5092,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5092,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5093,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5094,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5096,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5101,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5103,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:5105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - arg
    - lingering
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5106
      start: 5054
    functionDepth: 9
    functionLinenumber: 5054
    functionLinenumberEnd: 5106
    functionName: http_lingering_close_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - evhttp_connection_set_local_address
    - evhttp_set_flags
    - evhttp_request_get_output_buffer
    - tt_assert
    - malloc
    - evhttp_set_max_body_size
    - evhttp_connection_free
    - evhttp_free
    - memset
    - evhttp_request_get_output_headers
    - free
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evbuffer_add_printf
    - evhttp_make_request
    - http_setup
    linkageType: ''
    returnType: void
    signature: void http_lingering_close_test_impl(void *arg, int lingering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_lingering_close_test_impl
      Src: /src/libevent/test/regress_http.c:5108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 5107
    functionDepth: 10
    functionLinenumber: 5107
    functionLinenumberEnd: 5108
    functionName: http_non_lingering_close_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_lingering_close_test_impl
    linkageType: ''
    returnType: void
    signature: void http_non_lingering_close_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_lingering_close_test_impl
      Src: /src/libevent/test/regress_http.c:5110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5110
      start: 5109
    functionDepth: 10
    functionLinenumber: 5109
    functionLinenumberEnd: 5110
    functionName: http_lingering_close_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_lingering_close_test_impl
    linkageType: ''
    returnType: void
    signature: void http_lingering_close_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/test/regress_http.c:5135,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:5137,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5138,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:5142,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5143,1
    - Dst: evhttp_send_reply_chunk
      Src: /src/libevent/test/regress_http.c:5144,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:5145,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:5151,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:5152,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5155
      start: 5125
    functionDepth: 9
    functionLinenumber: 5125
    functionLinenumberEnd: 5155
    functionName: terminate_chunked_trickle_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - event_base_once
    - evbuffer_new
    - event_base_loopexit
    - EVUTIL_ASSERT
    - evhttp_request_get_connection
    - evhttp_send_reply_chunk
    - evbuffer_add_printf
    - evbuffer_free
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_trickle_cb(evutil_socket_t fd, short events,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:5165,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5169
      start: 5157
    functionDepth: 3
    functionLinenumber: 5157
    functionLinenumberEnd: 5169
    functionName: terminate_chunked_close_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_close_cb(struct evhttp_connection *evcon, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_set_closecb
      Src: /src/libevent/test/regress_http.c:5178,1
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/test/regress_http.c:5179,1
    - Dst: evhttp_send_reply_start
      Src: /src/libevent/test/regress_http.c:5184,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5189
      start: 5171
    functionDepth: 5
    functionLinenumber: 5171
    functionLinenumberEnd: 5189
    functionName: terminate_chunked_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_start
    - evhttp_request_get_connection
    - evhttp_connection_set_closecb
    - event_base_once
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5195,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:5196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5197
      start: 5191
    functionDepth: 6
    functionLinenumber: 5191
    functionLinenumberEnd: 5197
    functionName: terminate_chunked_client
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_client(evutil_socket_t fd, short event, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:5203,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:5203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5204
      start: 5199
    functionDepth: 4
    functionLinenumber: 5199
    functionLinenumberEnd: 5204
    functionName: terminate_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void terminate_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5217,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/test/regress_http.c:5221,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5222,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:5222,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5225,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5226,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:5229,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5230,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5232,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5235,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:5247,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5247,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:5248,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5250,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5253,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:5260,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - arg
    - oneshot
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5263
      start: 5207
    functionDepth: 8
    functionLinenumber: 5207
    functionLinenumberEnd: 5263
    functionName: http_terminate_chunked_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_base_once
    - http_connect
    - tt_assert
    - bufferevent_socket_new
    - evutil_closesocket
    - evhttp_free
    - bufferevent_write
    - strlen
    - evutil_timerclear
    - http_setup
    - evhttp_set_cb
    - memset
    - bufferevent_setcb
    - evhttp_del_cb
    linkageType: ''
    returnType: void
    signature: void http_terminate_chunked_test_impl(void *arg, int oneshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_terminate_chunked_test_impl
      Src: /src/libevent/test/regress_http.c:5267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5268
      start: 5264
    functionDepth: 9
    functionLinenumber: 5264
    functionLinenumberEnd: 5268
    functionName: http_terminate_chunked_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_terminate_chunked_test_impl
    linkageType: ''
    returnType: void
    signature: void http_terminate_chunked_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_terminate_chunked_test_impl
      Src: /src/libevent/test/regress_http.c:5272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5273
      start: 5269
    functionDepth: 9
    functionLinenumber: 5269
    functionLinenumberEnd: 5273
    functionName: http_terminate_chunked_oneshot_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_terminate_chunked_test_impl
    linkageType: ''
    returnType: void
    signature: void http_terminate_chunked_oneshot_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5288,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:5288,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:5290,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5291,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:5295,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:5296,1
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:5298,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:5303,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:5304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - arg
    - family
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5305
      start: 5280
    functionDepth: 9
    functionLinenumber: 5280
    functionLinenumberEnd: 5305
    functionName: http_ipv6_for_domain_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - http_connection_test_
    - evdns_base_nameserver_ip_add
    - evdns_base_free
    - regress_dnsserver
    - evutil_snprintf
    - regress_clean_dnsserver
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void http_ipv6_for_domain_test_impl(void *arg, int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_ipv6_for_domain_test_impl
      Src: /src/libevent/test/regress_http.c:5309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5310
      start: 5306
    functionDepth: 10
    functionLinenumber: 5306
    functionLinenumberEnd: 5310
    functionName: http_ipv6_for_domain_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_ipv6_for_domain_test_impl
    linkageType: ''
    returnType: void
    signature: void http_ipv6_for_domain_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5320,1
    - Dst: evhttp_connection_get_addr
      Src: /src/libevent/test/regress_http.c:5322,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5323,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_http.c:5325,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5326,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:5326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5333
      start: 5312
    functionDepth: 4
    functionLinenumber: 5312
    functionLinenumberEnd: 5333
    functionName: http_request_get_addr_on_close
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - strncmp
    - tt_assert
    - evhttp_connection_get_addr
    linkageType: ''
    returnType: void
    signature: void http_request_get_addr_on_close(struct evhttp_connection *evcon,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5342,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5347,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5348,1
    - Dst: evhttp_connection_set_closecb
      Src: /src/libevent/test/regress_http.c:5349,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5356,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5359,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5360,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5363,1
    - Dst: http_request_get_addr_on_close
      Src: /src/libevent/test/regress_http.c:5365,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5369,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5372
      start: 5335
    functionDepth: 7
    functionLinenumber: 5335
    functionLinenumberEnd: 5372
    functionName: http_get_addr_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - evhttp_connection_set_closecb
    - event_base_dispatch
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - http_request_get_addr_on_close
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    linkageType: ''
    returnType: void
    signature: void http_get_addr_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:5377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5374
    functionDepth: 8
    functionLinenumber: 5374
    functionLinenumberEnd: 5378
    functionName: http_set_family_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_set_family_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:5382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5383
      start: 5379
    functionDepth: 8
    functionLinenumber: 5379
    functionLinenumberEnd: 5383
    functionName: http_set_family_ipv4_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_set_family_ipv4_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_ipv6_for_domain_test_impl
      Src: /src/libevent/test/regress_http.c:5387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5388
      start: 5384
    functionDepth: 10
    functionLinenumber: 5384
    functionLinenumberEnd: 5388
    functionName: http_set_family_ipv6_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_ipv6_for_domain_test_impl
    linkageType: ''
    returnType: void
    signature: void http_set_family_ipv6_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:5396,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5396,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:5398,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5401
      start: 5390
    functionDepth: 8
    functionLinenumber: 5390
    functionLinenumberEnd: 5401
    functionName: http_write_during_read
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - bufferevent_write
    - strlen
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void http_write_during_read(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5411,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5416,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5417,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:5418,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5419,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5420,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:5421,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:5428,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5428,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:5429,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5431,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5433,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5437,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5440
      start: 5402
    functionDepth: 8
    functionLinenumber: 5402
    functionLinenumberEnd: 5440
    functionName: http_write_during_read_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - bufferevent_disable
    - event_base_once
    - tt_assert
    - http_connect
    - bufferevent_write
    - strlen
    - evutil_timerclear
    - http_setup
    - evhttp_free
    - bufferevent_free
    - create_bev
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_write_during_read_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_write_during_read_test_impl
      Src: /src/libevent/test/regress_http.c:5442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5442
      start: 5441
    functionDepth: 9
    functionLinenumber: 5441
    functionLinenumberEnd: 5442
    functionName: http_write_during_read_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_write_during_read_test_impl
    linkageType: ''
    returnType: void
    signature: void http_write_during_read_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5451,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5456,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5458,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5459,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5461,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5463,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5464,1
    - Dst: evhttp_request_own
      Src: /src/libevent/test/regress_http.c:5466,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5468,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5472,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:5474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5477
      start: 5444
    functionDepth: 7
    functionLinenumber: 5444
    functionLinenumberEnd: 5477
    functionName: http_request_own_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - evhttp_request_free
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_request_own
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    linkageType: ''
    returnType: void
    signature: void http_request_own_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5487,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5488,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:5491,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5492,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5494,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:5496,1
    - Dst: va_start
      Src: /src/libevent/test/regress_http.c:5498,1
    - Dst: evbuffer_add_vprintf
      Src: /src/libevent/test/regress_http.c:5499,1
    - Dst: va_end
      Src: /src/libevent/test/regress_http.c:5500,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5502,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - base
    - port
    - fmt
    argTypes:
    - struct event_base*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5507
      start: 5479
    functionDepth: 8
    functionLinenumber: 5479
    functionLinenumberEnd: 5507
    functionName: http_run_bev_request
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - va_end
    - tt_assert
    - http_connect
    - bufferevent_get_output
    - va_start
    - evbuffer_add_vprintf
    - bufferevent_free
    - create_bev
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void http_run_bev_request(struct event_base *base, int port,\n\tconst
      char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup_gencb
      Src: /src/libevent/test/regress_http.c:5516,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:5522,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5524,1
    - Dst: http_run_bev_request
      Src: /src/libevent/test/regress_http.c:5526,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:5532,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:5533,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5535,1
    - Dst: http_run_bev_request
      Src: /src/libevent/test/regress_http.c:5537,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:5543,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:5544,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5546,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5549,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5551,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:5553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5554
      start: 5508
    functionDepth: 9
    functionLinenumber: 5508
    functionLinenumberEnd: 5554
    functionName: http_request_extra_body_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_run_bev_request
    - evbuffer_new
    - tt_assert
    - evhttp_free
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - http_setup_gencb
    - evbuffer_pullup
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void http_request_extra_body_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5569,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5570,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5571,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5573,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5575,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5576,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5577,1
    - Dst: tt_fail
      Src: /src/libevent/test/regress_http.c:5582,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:5583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct http_newreqcb_test_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5584
      start: 5566
    functionDepth: 2
    functionLinenumber: 5566
    functionLinenumberEnd: 5584
    functionName: http_newreqcb_test_state_check
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - event_base_loopexit
    - tt_int_op
    - tt_fail
    linkageType: ''
    returnType: void
    signature: void http_newreqcb_test_state_check(struct http_newreqcb_test_state*
      state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:5590,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:5592,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5597
      start: 5586
    functionDepth: 3
    functionLinenumber: 5586
    functionLinenumberEnd: 5597
    functionName: http_request_done_newreqcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - evhttp_request_set_error_cb
    - http_newreqcb_test_state_check
    linkageType: ''
    returnType: void
    signature: void http_request_done_newreqcb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - arg
    argTypes:
    - enum evhttp_request_error
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5606
      start: 5599
    functionDepth: 3
    functionLinenumber: 5599
    functionLinenumberEnd: 5606
    functionName: http_request_error_newreqcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_newreqcb_test_state_check
    linkageType: ''
    returnType: void
    signature: void http_request_error_newreqcb(enum evhttp_request_error err, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5619
      start: 5608
    functionDepth: 3
    functionLinenumber: 5608
    functionLinenumberEnd: 5619
    functionName: http_newreqcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_newreqcb_test_state_check
    linkageType: ''
    returnType: int
    signature: int http_newreqcb(struct evhttp_request* req, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5627,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5635,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5636,1
    - Dst: evhttp_set_newreqcb
      Src: /src/libevent/test/regress_http.c:5638,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5643,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:5645,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5647,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5649,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5650,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5650,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:5651,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5654,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5655,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5659,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5662,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5664,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5665,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5668,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5676
      start: 5622
    functionDepth: 7
    functionLinenumber: 5622
    functionLinenumberEnd: 5676
    functionName: http_newreqcb_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - evhttp_connection_set_retries
    - tt_assert
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evhttp_free
    - evhttp_request_set_error_cb
    - evhttp_make_request
    - evhttp_set_newreqcb
    - http_setup
    - http_newreqcb_test_state_check
    - evhttp_connection_free
    - tt_int_op
    - memset
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_newreqcb_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5686,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5691,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5692,1
    - Dst: evhttp_connection_set_connect_timeout_tv
      Src: /src/libevent/test/regress_http.c:5696,1
    - Dst: evhttp_connection_set_write_timeout_tv
      Src: /src/libevent/test/regress_http.c:5697,1
    - Dst: evhttp_connection_set_read_timeout_tv
      Src: /src/libevent/test/regress_http.c:5699,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5701,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5702,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5703,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5703,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5704,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5704,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5705,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5706,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5710,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5713
      start: 5678
    functionDepth: 7
    functionLinenumber: 5678
    functionLinenumberEnd: 5713
    functionName: http_timeout_read_client_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - evhttp_connection_set_write_timeout_tv
    - tt_assert
    - evhttp_connection_set_read_timeout_tv
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evhttp_connection_set_connect_timeout_tv
    - evhttp_make_request
    - evhttp_connection_free
    - http_setup
    - evhttp_free
    - tt_int_op
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_timeout_read_client_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_error
      Src: /src/libevent/test/regress_http.c:5757,1
    - Dst: evhttp_send_error
      Src: /src/libevent/test/regress_http.c:5760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5763
      start: 5749
    functionDepth: 5
    functionLinenumber: 5749
    functionLinenumberEnd: 5763
    functionName: http_error_callback_gencb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_error
    linkageType: ''
    returnType: void
    signature: void http_error_callback_gencb(struct evhttp_request *req, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5776,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5783,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - req
    - buf
    - error
    - reason
    - arg
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5791
      start: 5765
    functionDepth: 9
    functionLinenumber: 5765
    functionLinenumberEnd: 5791
    functionName: http_error_callback_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_printf
    linkageType: ''
    returnType: int
    signature: "int http_error_callback_errorcb(struct evhttp_request *req, struct
      evbuffer *buf,\n    int error, const char *reason, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5803,1
    - Dst: tt_assert_op_type
      Src: /src/libevent/test/regress_http.c:5804,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:5804,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5806,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:5806,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:5809,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5810,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:5811,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_http.c:5812,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:5813,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5814,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:5814,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:5814,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5817,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5823
      start: 5793
    functionDepth: 2
    functionLinenumber: 5793
    functionLinenumberEnd: 5823
    functionName: http_error_callback_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - evhttp_request_get_response_code
    - tt_int_op
    - tt_assert
    - evhttp_request_get_command
    - event_base_loopexit
    - tt_str_op
    - evhttp_request_get_input_headers
    - evbuffer_get_length
    - evhttp_find_header
    - tt_assert_msg
    - tt_assert_op_type
    linkageType: ''
    returnType: void
    signature: void http_error_callback_test_done(struct evhttp_request *req, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5837,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:5838,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5844,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5845,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:5848,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:5857,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/test/regress_http.c:5861,1
    - Dst: evhttp_set_errorcb
      Src: /src/libevent/test/regress_http.c:5865,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5870,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5872,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5873,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5875,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:5876,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5878,1
    - Dst: tt_abort_printf
      Src: /src/libevent/test/regress_http.c:5883,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5890,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5892,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5893
      start: 5825
    functionDepth: 7
    functionLinenumber: 5825
    functionLinenumberEnd: 5893
    functionName: http_error_callback_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - tt_abort_printf
    - tt_assert
    - evhttp_set_gencb
    - evhttp_set_allowed_methods
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_set_errorcb
    - exit
    - evhttp_free
    - ARRAY_SIZE
    - evhttp_make_request
    - evhttp_connection_set_local_address
    - http_setup
    - evhttp_connection_free
    linkageType: ''
    returnType: void
    signature: void http_error_callback_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:5897,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5898
      start: 5895
    functionDepth: 7
    functionLinenumber: 5895
    functionLinenumberEnd: 5898
    functionName: http_add_output_buffer
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - strlen
    linkageType: ''
    returnType: void
    signature: void http_add_output_buffer(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5908,1
    - Dst: evhttp_set_write_timeout_tv
      Src: /src/libevent/test/regress_http.c:5914,1
    - Dst: evhttp_set_read_timeout_tv
      Src: /src/libevent/test/regress_http.c:5916,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5918,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:5919,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5920,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5922,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:5923,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5925,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5929,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5932,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5934,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5935,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5939,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:5941,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5943,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5944
      start: 5899
    functionDepth: 9
    functionLinenumber: 5899
    functionLinenumberEnd: 5944
    functionName: http_timeout_read_server_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_base_once
    - http_connect
    - tt_assert
    - bufferevent_get_output
    - evutil_closesocket
    - evhttp_set_read_timeout_tv
    - strlen
    - evbuffer_add_printf
    - http_setup
    - evhttp_free
    - bufferevent_free
    - create_bev
    - tt_int_op
    - evhttp_set_write_timeout_tv
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void http_timeout_read_server_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5954,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5962,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5963,1
    - Dst: evhttp_set_max_connections
      Src: /src/libevent/test/regress_http.c:5965,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:5965,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5970,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:5972,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5974,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5976,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5977,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5977,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:5978,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5981,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5982,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5986,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5997,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:6000,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:6002,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:6003,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:6004,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:6005,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:6008,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:6010,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:6012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6015
      start: 5949
    functionDepth: 7
    functionLinenumber: 5949
    functionLinenumberEnd: 6015
    functionName: http_max_connections_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - event_base_dispatch
    - ARRAY_SIZE
    - http_newreqcb_test_state_check
    - evhttp_connection_set_retries
    - tt_assert
    - evhttp_set_max_connections
    - evhttp_request_set_error_cb
    - evhttp_connection_free
    - evhttp_free
    - memset
    - evhttp_request_get_output_headers
    - event_base_loopexit
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - evhttp_make_request
    - http_setup
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void http_max_connections_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6021
      start: 6018
    functionDepth: 0
    functionLinenumber: 6018
    functionLinenumberEnd: 6021
    functionName: HTTP_LEGACY
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_LEGACY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6023
      start: 6022
    functionDepth: 0
    functionLinenumber: 6022
    functionLinenumberEnd: 6023
    functionName: HTTP_CAST_ARG
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_CAST_ARG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - title
    - ','
    - name
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 6023
    functionDepth: 0
    functionLinenumber: 6023
    functionLinenumberEnd: 6025
    functionName: HTTP_OFF_N
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_OFF_N(title, name, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - title
    - ','
    - name
    - ','
    - test_opts
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6027
      start: 6025
    functionDepth: 0
    functionLinenumber: 6025
    functionLinenumberEnd: 6027
    functionName: HTTP_RET_N
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_RET_N(title, name, test_opts, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - title
    - ','
    - name
    - ','
    - test_opts
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6029
      start: 6027
    functionDepth: 0
    functionLinenumber: 6027
    functionLinenumberEnd: 6029
    functionName: HTTP_N
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_N(title, name, test_opts, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6030
      start: 6029
    functionDepth: 0
    functionLinenumber: 6029
    functionLinenumberEnd: 6030
    functionName: HTTP
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6031
      start: 6030
    functionDepth: 0
    functionLinenumber: 6030
    functionLinenumberEnd: 6031
    functionName: HTTP_OPT
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_OPT(name, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6033
      start: 6031
    functionDepth: 0
    functionLinenumber: 6031
    functionLinenumberEnd: 6033
    functionName: HTTPS
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTPS(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6035
      start: 6033
    functionDepth: 0
    functionLinenumber: 6033
    functionLinenumberEnd: 6035
    functionName: HTTPS_MBEDTLS
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTPS_MBEDTLS(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6038
      start: 6037
    functionDepth: 10
    functionLinenumber: 6037
    functionLinenumberEnd: 6038
    functionName: https_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6040
      start: 6039
    functionDepth: 10
    functionLinenumber: 6039
    functionLinenumberEnd: 6040
    functionName: https_filter_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_filter_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6042
      start: 6041
    functionDepth: 9
    functionLinenumber: 6041
    functionLinenumberEnd: 6042
    functionName: https_incomplete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_incomplete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6044
      start: 6043
    functionDepth: 9
    functionLinenumber: 6043
    functionLinenumberEnd: 6044
    functionName: https_incomplete_timeout_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_incomplete_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6046
      start: 6045
    functionDepth: 9
    functionLinenumber: 6045
    functionLinenumberEnd: 6046
    functionName: https_simple_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6048
      start: 6047
    functionDepth: 9
    functionLinenumber: 6047
    functionLinenumberEnd: 6048
    functionName: https_simple_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6050
      start: 6049
    functionDepth: 9
    functionLinenumber: 6049
    functionLinenumberEnd: 6050
    functionName: https_simple_dirty_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_dirty_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6052
      start: 6051
    functionDepth: 9
    functionLinenumber: 6051
    functionLinenumberEnd: 6052
    functionName: https_simple_dirty_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_dirty_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_conn_address_test_impl
      Src: /src/libevent/test/regress_http.c:6054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6054
      start: 6053
    functionDepth: 10
    functionLinenumber: 6053
    functionLinenumberEnd: 6054
    functionName: https_connection_retry_conn_address_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_conn_address_test_impl
    linkageType: ''
    returnType: void
    signature: void https_connection_retry_conn_address_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_impl
      Src: /src/libevent/test/regress_http.c:6056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6056
      start: 6055
    functionDepth: 9
    functionLinenumber: 6055
    functionLinenumberEnd: 6056
    functionName: https_connection_retry_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void https_connection_retry_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6058
      start: 6057
    functionDepth: 9
    functionLinenumber: 6057
    functionLinenumberEnd: 6058
    functionName: https_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6060
      start: 6059
    functionDepth: 9
    functionLinenumber: 6059
    functionLinenumberEnd: 6060
    functionName: https_filter_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_filter_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_out_test_impl
      Src: /src/libevent/test/regress_http.c:6062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6062
      start: 6061
    functionDepth: 8
    functionLinenumber: 6061
    functionLinenumberEnd: 6062
    functionName: https_stream_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_stream_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_stream_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_fail_test_impl
      Src: /src/libevent/test/regress_http.c:6064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6064
      start: 6063
    functionDepth: 8
    functionLinenumber: 6063
    functionLinenumberEnd: 6064
    functionName: https_connection_fail_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_fail_test_impl
    linkageType: ''
    returnType: void
    signature: void https_connection_fail_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_write_during_read_test_impl
      Src: /src/libevent/test/regress_http.c:6066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6066
      start: 6065
    functionDepth: 9
    functionLinenumber: 6065
    functionLinenumberEnd: 6066
    functionName: https_write_during_read_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_write_during_read_test_impl
    linkageType: ''
    returnType: void
    signature: void https_write_during_read_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6068
      start: 6067
    functionDepth: 8
    functionLinenumber: 6067
    functionLinenumberEnd: 6068
    functionName: https_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6070
      start: 6069
    functionDepth: 8
    functionLinenumber: 6069
    functionLinenumberEnd: 6070
    functionName: https_persist_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_persist_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: https_per_socket_bevcb_impl
      Src: /src/libevent/test/regress_http.c:6072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6072
      start: 6071
    functionDepth: 8
    functionLinenumber: 6071
    functionLinenumberEnd: 6072
    functionName: https_per_socket_bevcb_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - https_per_socket_bevcb_impl
    linkageType: ''
    returnType: void
    signature: void https_per_socket_bevcb_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 6076
    functionDepth: 10
    functionLinenumber: 6076
    functionLinenumberEnd: 6077
    functionName: https_mbedtls_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6079
      start: 6078
    functionDepth: 10
    functionLinenumber: 6078
    functionLinenumberEnd: 6079
    functionName: https_mbedtls_filter_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_filter_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6081
      start: 6080
    functionDepth: 9
    functionLinenumber: 6080
    functionLinenumberEnd: 6081
    functionName: https_mbedtls_incomplete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_incomplete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6083
      start: 6082
    functionDepth: 9
    functionLinenumber: 6082
    functionLinenumberEnd: 6083
    functionName: https_mbedtls_incomplete_timeout_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_incomplete_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6084
    functionDepth: 9
    functionLinenumber: 6084
    functionLinenumberEnd: 6085
    functionName: https_mbedtls_simple_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6087
      start: 6086
    functionDepth: 9
    functionLinenumber: 6086
    functionLinenumberEnd: 6087
    functionName: https_mbedtls_simple_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6089
      start: 6088
    functionDepth: 9
    functionLinenumber: 6088
    functionLinenumberEnd: 6089
    functionName: https_mbedtls_simple_dirty_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_dirty_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6091
      start: 6090
    functionDepth: 9
    functionLinenumber: 6090
    functionLinenumberEnd: 6091
    functionName: https_mbedtls_simple_dirty_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_dirty_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_conn_address_test_impl
      Src: /src/libevent/test/regress_http.c:6093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6093
      start: 6092
    functionDepth: 10
    functionLinenumber: 6092
    functionLinenumberEnd: 6093
    functionName: https_mbedtls_connection_retry_conn_address_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_conn_address_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_retry_conn_address_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_impl
      Src: /src/libevent/test/regress_http.c:6095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6095
      start: 6094
    functionDepth: 9
    functionLinenumber: 6094
    functionLinenumberEnd: 6095
    functionName: https_mbedtls_connection_retry_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_retry_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 6096
    functionDepth: 9
    functionLinenumber: 6096
    functionLinenumberEnd: 6097
    functionName: https_mbedtls_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6099
      start: 6098
    functionDepth: 9
    functionLinenumber: 6098
    functionLinenumberEnd: 6099
    functionName: https_mbedtls_filter_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_filter_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_out_test_impl
      Src: /src/libevent/test/regress_http.c:6101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6101
      start: 6100
    functionDepth: 8
    functionLinenumber: 6100
    functionLinenumberEnd: 6101
    functionName: https_mbedtls_stream_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_stream_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_stream_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_fail_test_impl
      Src: /src/libevent/test/regress_http.c:6103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6102
    functionDepth: 8
    functionLinenumber: 6102
    functionLinenumberEnd: 6103
    functionName: https_mbedtls_connection_fail_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_fail_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_fail_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_write_during_read_test_impl
      Src: /src/libevent/test/regress_http.c:6105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6104
    functionDepth: 9
    functionLinenumber: 6104
    functionLinenumberEnd: 6105
    functionName: https_mbedtls_write_during_read_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_write_during_read_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_write_during_read_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6107
      start: 6106
    functionDepth: 8
    functionLinenumber: 6106
    functionLinenumberEnd: 6107
    functionName: https_mbedtls_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6109
      start: 6108
    functionDepth: 8
    functionLinenumber: 6108
    functionLinenumberEnd: 6109
    functionName: https_mbedtls_persist_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_persist_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: https_per_socket_bevcb_impl
      Src: /src/libevent/test/regress_http.c:6111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6111
      start: 6110
    functionDepth: 8
    functionLinenumber: 6110
    functionLinenumberEnd: 6111
    functionName: https_mbedtls_per_socket_bevcb_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - https_per_socket_bevcb_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_per_socket_bevcb_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:55,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/tinytest_demo.c:58,1
    - Dst: tt_assert
      Src: /src/libevent/test/tinytest_demo.c:63,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:63,1
    - Dst: tt_want
      Src: /src/libevent/test/tinytest_demo.c:68,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:68,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:76,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:76,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:79,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:79,1
    - Dst: tt_str_op
      Src: /src/libevent/test/tinytest_demo.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 89
    functionName: test_strcmp
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - tt_abort_msg
    - tt_assert
    - tt_str_op
    - tt_int_op
    - tt_want
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_strcmp(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/tinytest_demo.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: setup_data_buffer
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      setup_data_buffer(const struct testcase_t *testcase)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/test/tinytest_demo.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: clean_data_buffer
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int clean_data_buffer(const struct testcase_t *testcase, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/libevent/test/tinytest_demo.c:153,1
    - Dst: memcpy
      Src: /src/libevent/test/tinytest_demo.c:154,1
    - Dst: tt_str_op
      Src: /src/libevent/test/tinytest_demo.c:155,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/tinytest_demo.c:158,1
    - Dst: strdup
      Src: /src/libevent/test/tinytest_demo.c:162,1
    - Dst: tt_assert
      Src: /src/libevent/test/tinytest_demo.c:163,1
    - Dst: tt_str_op
      Src: /src/libevent/test/tinytest_demo.c:166,1
    - Dst: free
      Src: /src/libevent/test/tinytest_demo.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: test_memcpy
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - strcpy
    - tt_mem_op
    - free
    - tt_assert
    - strdup
    - tt_str_op
    - memcpy
    linkageType: ''
    returnType: void
    signature: void test_memcpy(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:179,1
    - Dst: Sleep
      Src: /src/libevent/test/tinytest_demo.c:181,1
    - Dst: sleep
      Src: /src/libevent/test/tinytest_demo.c:183,1
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:185,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:187,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: test_timeout
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - sleep
    - Sleep
    - time
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_timeout(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:201,1
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:205,1
    - Dst: Sleep
      Src: /src/libevent/test/tinytest_demo.c:207,1
    - Dst: sleep
      Src: /src/libevent/test/tinytest_demo.c:209,1
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:211,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:213,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: test_timeout_retry
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - sleep
    - time
    - tt_int_op
    - Sleep
    linkageType: ''
    returnType: void
    signature: void test_timeout_retry(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tinytest_set_aliases
      Src: /src/libevent/test/tinytest_demo.c:290,1
    - Dst: tinytest_main
      Src: /src/libevent/test/tinytest_demo.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - v
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 292
    functionName: main
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 2
    functionsReached:
    - tinytest_main
    - tinytest_set_aliases
    linkageType: ''
    returnType: int
    signature: int main(int c, const char **v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:129,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:132,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:138,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_util.c:141,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:142,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_util.c:143,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:148,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:151,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_util.c:154,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:155,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 163
    functionName: regress_ipv4_parse
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_inet_pton
    - ntohl
    - evutil_inet_ntop
    - TT_FAIL
    - strcmp
    linkageType: ''
    returnType: void
    signature: void regress_ipv4_parse(void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:176,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:179,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:184,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:195,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:200,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:203,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_util.c:206,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:207,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:214,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 216
    functionName: regress_ipv6_parse
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_inet_pton
    - evutil_inet_ntop
    - TT_FAIL
    - TT_BLATHER
    - strcmp
    linkageType: ''
    returnType: void
    signature: void regress_ipv6_parse(void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton_scope
      Src: /src/libevent/test/regress_util.c:242,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:246,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:251,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:262,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:267,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:272,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 274
    functionName: regress_ipv6_parse_scope
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - TT_BLATHER
    - evutil_inet_pton_scope
    linkageType: ''
    returnType: void
    signature: void regress_ipv6_parse_scope(void *ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:305,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:306,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:309,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:312,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:317,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:322,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:323,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:325,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_util.c:326,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:327,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:329,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:333,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:338,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:339,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:341,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_util.c:342,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:343,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:345,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 349
    functionName: regress_sockaddr_port_parse
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_parse_sockaddr_port
    - evutil_inet_pton
    - htons
    - memcmp
    - TT_FAIL
    - memset
    linkageType: ''
    returnType: void
    signature: void regress_sockaddr_port_parse(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:362,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:364,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_util.c:365,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:367,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:368,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:371,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:373,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_util.c:374,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:376,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:377,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_util.c:380,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:382,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 386
    functionName: regress_sockaddr_port_format
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - tt_int_op
    - evutil_parse_sockaddr_port
    - tt_ptr_op
    - tt_str_op
    linkageType: ''
    returnType: void
    signature: void regress_sockaddr_port_format(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:417,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:420,1
    - Dst: evutil_sockaddr_is_loopback_
      Src: /src/libevent/test/regress_util.c:425,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 430
    functionName: test_evutil_sockaddr_predicates
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - evutil_parse_sockaddr_port
    - evutil_sockaddr_is_loopback_
    linkageType: ''
    returnType: void
    signature: void test_evutil_sockaddr_predicates(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:438,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:438,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:440,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:440,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:443,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:443,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:444,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:445,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 446
    functionName: test_evutil_strtoll
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_strtoll
    - tt_want
    linkageType: ''
    returnType: void
    signature: void test_evutil_strtoll(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:458,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:459,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:460,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:462,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:463,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:464,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:466,1
    - Dst: EV_U64_ARG
      Src: /src/libevent/test/regress_util.c:466,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:467,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:468,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:470,1
    - Dst: EV_I64_ARG
      Src: /src/libevent/test/regress_util.c:470,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:471,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:472,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:474,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/test/regress_util.c:475,1
    - Dst: EV_SSIZE_ARG
      Src: /src/libevent/test/regress_util.c:475,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:476,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:477,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:479,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:480,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:481,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 485
    functionName: test_evutil_snprintf
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - EV_U64_ARG
    - tt_int_op
    - EV_I64_ARG
    - EV_SSIZE_ARG
    - strlen
    - EV_SIZE_ARG
    - evutil_snprintf
    - tt_str_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_snprintf(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:490,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:490,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:491,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:491,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:492,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:493,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:493,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:494,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:494,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:496,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:496,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:497,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:497,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:498,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:498,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:499,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:499,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:500,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:500,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:501,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:501,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:502,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:502,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:503,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: test_evutil_casecmp
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_ascii_strncasecmp
    - tt_int_op
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: void
    signature: void test_evutil_casecmp(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:523,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:524,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:525,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:527,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:528,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:529,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:530,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:532,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:533,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:534,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:535,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:536,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:537,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:538,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 543
    functionName: test_evutil_rtrim
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - TEST_TRIM
    - mm_free
    linkageType: ''
    returnType: void
    signature: void test_evutil_rtrim(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: TEST_TRIM
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_TRIM(s, result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:552,1
    - Dst: free
      Src: /src/libevent/test/regress_util.c:555,1
    - Dst: strdup
      Src: /src/libevent/test/regress_util.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - severity
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 558
    functionName: logfn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    - tt_want
    linkageType: ''
    returnType: void
    signature: void logfn(int severity, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_util.c:567,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:568,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 571
    functionName: fatalfn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - exit
    - strcmp
    linkageType: ''
    returnType: void
    signature: void fatalfn(int exitcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regress_fork
      Src: /src/libevent/test/regress_util.c:583,1
    - Dst: fn
      Src: /src/libevent/test/regress_util.c:585,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:586,1
    - Dst: wait
      Src: /src/libevent/test/regress_util.c:588,1
    - Dst: WEXITSTATUS
      Src: /src/libevent/test/regress_util.c:589,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - wantexitcode
    - wantseverity
    - wantmsg
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 594
    functionName: check_error_logging
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - fn
    - WEXITSTATUS
    - exit
    - regress_fork
    - tt_int_op
    - wait
    linkageType: ''
    returnType: void
    signature: "void check_error_logging(void (*fn)(void), int wantexitcode,\n    int
      wantseverity, const char *wantmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_errx
      Src: /src/libevent/test/regress_util.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: errx_fn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - event_errx
    linkageType: ''
    returnType: void
    signature: void errx_fn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_err
      Src: /src/libevent/test/regress_util.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: err_fn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - event_err
    linkageType: ''
    returnType: void
    signature: void err_fn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/test/regress_util.c:612,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/test/regress_util.c:614,1
    - Dst: event_sock_err
      Src: /src/libevent/test/regress_util.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 619
    functionName: sock_err_fn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - socket
    - event_sock_err
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: void sock_err_fn(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_set_log_callback
      Src: /src/libevent/test/regress_util.c:628,1
    - Dst: event_set_fatal_callback
      Src: /src/libevent/test/regress_util.c:629,1
    - Dst: check_error_logging
      Src: /src/libevent/test/regress_util.c:646,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:648,1
    - Dst: event_warnx
      Src: /src/libevent/test/regress_util.c:651,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:652,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:653,1
    - Dst: event_msgx
      Src: /src/libevent/test/regress_util.c:655,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:656,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:657,1
    - Dst: event_debug
      Src: /src/libevent/test/regress_util.c:659,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:661,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:663,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:664,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:666,1
    - Dst: event_warn
      Src: /src/libevent/test/regress_util.c:670,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:671,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:672,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:673,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:674,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:677,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:678,1
    - Dst: check_error_logging
      Src: /src/libevent/test/regress_util.c:679,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:680,1
    - Dst: socket
      Src: /src/libevent/test/regress_util.c:684,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:686,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress_util.c:688,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/test/regress_util.c:689,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:691,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:692,1
    - Dst: event_sock_warn
      Src: /src/libevent/test/regress_util.c:695,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:696,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:697,1
    - Dst: check_error_logging
      Src: /src/libevent/test/regress_util.c:700,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:701,1
    - Dst: free
      Src: /src/libevent/test/regress_util.c:708,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_util.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 711
    functionName: test_evutil_log
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - event_warnx
    - evutil_snprintf
    - event_set_fatal_callback
    - evutil_socket_error_to_string
    - evutil_closesocket
    - event_set_log_callback
    - LOGEQ
    - socket
    - strerror
    - event_debug
    - RESET
    - event_msgx
    - EVUTIL_SET_SOCKET_ERROR
    - check_error_logging
    - free
    - event_warn
    - event_sock_warn
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_log(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: RESET
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sev
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: LOGEQ
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGEQ(sev,msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:719,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_util.c:719,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:723,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_util.c:723,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:724,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:727,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_util.c:727,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 731
    functionName: test_evutil_strlcpy
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - strlcpy
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_strlcpy(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 755
    functionName: test_evutil_upcast
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_evutil_upcast(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:775,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:776,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:777,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:778,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:779,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:780,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:781,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:782,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:784,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:785,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:786,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:790,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:793,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:797,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:801,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:807,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:808,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:811,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:817,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:818,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:821,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:827,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:828,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:831,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:847,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:849,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 855
    functionName: test_evutil_integers
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void test_evutil_integers(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ai
    - family
    argTypes:
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 866
    functionName: ai_find_by_family
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      ai_find_by_family(struct evutil_addrinfo *ai, int family)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ai
    - protocol
    argTypes:
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: ai_find_by_protocol
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      ai_find_by_protocol(struct evutil_addrinfo *ai, int protocol)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:888,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:890,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:892,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:894,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:896,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:901,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:907,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_util.c:908,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:910,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:915,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_util.c:916,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:918,1
    - Dst: evutil_sockaddr_cmp
      Src: /src/libevent/test/regress_util.c:922,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:923,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:927,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:932,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 5
    argNames:
    - ai
    - sockaddr_port
    - socktype
    - protocol
    - line
    argTypes:
    - struct evutil_addrinfo*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 934
    functionName: test_ai_eq_
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_parse_sockaddr_port
    - evutil_sockaddr_cmp
    - evutil_inet_ntop
    - TT_FAIL
    - TT_BLATHER
    - ntohs
    - tt_int_op
    - memset
    linkageType: ''
    returnType: int
    signature: "int test_ai_eq_(const struct evutil_addrinfo *ai, const char *sockaddr_port,\n
      \   int socktype, int protocol, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:945,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:946,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/regress_util.c:951,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/regress_util.c:952,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:954,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:960,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/test/regress_util.c:961,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:968,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:969,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:978,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/regress_util.c:982,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/test/regress_util.c:984,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:985,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:986,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 936
    functionDepth: 10
    functionLinenumber: 936
    functionLinenumberEnd: 990
    functionName: test_evutil_rand
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_seed_
    - tt_assert
    - evutil_weakrand_
    - evutil_secure_rng_get_bytes
    - evutil_weakrand_range_
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evutil_rand(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:995,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/test/regress_util.c:995,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:996,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/test/regress_util.c:996,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:997,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/test/regress_util.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1000
    functionName: test_EVUTIL_IS_
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - EVUTIL_ISDIGIT_
    linkageType: ''
    returnType: void
    signature: void test_EVUTIL_IS_(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1013,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1015,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1016,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1017,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1022,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1025,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1026,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1027,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1028,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1029,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1030,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1033,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1036,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1037,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1038,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1039,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1040,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1041,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1045,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1049,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1050,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1051,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1052,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1053,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1054,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1057,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1058,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1059,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1060,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1061,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1062,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1067,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1068,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1069,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1070,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1071,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1072,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1077,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1078,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1079,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1080,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1081,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1082,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1087,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1088,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1089,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_util.c:1090,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1091,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1092,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_util.c:1093,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1094,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1095,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1096,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1101,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1104,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1105,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_util.c:1106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1107,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1108,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_util.c:1109,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1110,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1111,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1112,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1116,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1119,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1120,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1121,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1124,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1128,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_util.c:1130,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1133,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1136,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress_util.c:1138,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1140,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1141,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1142,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 119
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1002
    functionDepth: 7
    functionLinenumber: 1002
    functionLinenumberEnd: 1149
    functionName: test_evutil_getaddrinfo
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - ai_find_by_family
    - tt_assert
    - tt_fail_msg
    - tt_ptr_op
    - test_ai_eq
    - evutil_freeaddrinfo
    - TT_DECLARE
    - evutil_getaddrinfo
    - tt_int_op
    - memset
    - ai_find_by_protocol
    linkageType: ''
    returnType: void
    signature: void test_evutil_getaddrinfo(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1164,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1168,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress_util.c:1170,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1172,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1173,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1174,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1175,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1176,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1178,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1179,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:1179,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1180,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:1182,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1183,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1185,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1190,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1194,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1195,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1196,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1198,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:1198,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:1200,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1202,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1151
    functionDepth: 7
    functionLinenumber: 1151
    functionLinenumberEnd: 1209
    functionName: test_evutil_getaddrinfo_live
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - htons
    - evutil_inet_ntop
    - evutil_freeaddrinfo
    - TT_DECLARE
    - TT_BLATHER
    - evutil_getaddrinfo
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evutil_getaddrinfo_live(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1218,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1224,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1225,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1226,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1227,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1228,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1229,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1233,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1235,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1236,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1237,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1238,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1211
    functionDepth: 7
    functionLinenumber: 1211
    functionLinenumberEnd: 1244
    functionName: test_evutil_getaddrinfo_AI_ADDRCONFIG
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_ptr_op
    - test_ai_eq
    - evutil_freeaddrinfo
    - evutil_getaddrinfo
    - tt_int_op
    - memset
    linkageType: ''
    returnType: void
    signature: void test_evutil_getaddrinfo_AI_ADDRCONFIG(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/test/regress_util.c:1252,1
    - Dst: TEXT
      Src: /src/libevent/test/regress_util.c:1252,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1253,1
    - Dst: CloseHandle
      Src: /src/libevent/test/regress_util.c:1257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1259
    functionName: test_evutil_loadsyslib
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_load_windows_system_library_
    - TEXT
    - CloseHandle
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void test_evutil_loadsyslib(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/test/regress_util.c:1272,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1274,1
    - Dst: mm_malloc
      Src: /src/libevent/test/regress_util.c:1279,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1280,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1281,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1287
    functionName: test_event_malloc
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - tt_int_op
    - tt_assert
    - mm_free
    linkageType: ''
    returnType: void
    signature: void test_event_malloc(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1299,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1300,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1301,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1303,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1304,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1305,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1307,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1308,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1309,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1314,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1315,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1316,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1317,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1324
    functionName: test_event_calloc
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - mm_calloc
    - tt_assert
    - mm_free
    linkageType: ''
    returnType: void
    signature: void test_event_calloc(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1340,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1345,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1350
    functionName: test_event_calloc_enomem
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - mm_calloc
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_event_calloc_enomem(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_strdup
      Src: /src/libevent/test/regress_util.c:1361,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1362,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1363,1
    - Dst: mm_strdup
      Src: /src/libevent/test/regress_util.c:1369,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1370,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1371,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1372,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1373,1
    - Dst: mm_strdup
      Src: /src/libevent/test/regress_util.c:1376,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1377,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1378,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1379,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1389
    functionName: test_event_strdup
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - tt_assert
    - mm_strdup
    - mm_free
    - tt_str_op
    linkageType: ''
    returnType: void
    signature: void test_event_strdup(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_util.c:1399,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_util.c:1400,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_util.c:1401,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_util.c:1402,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_util.c:1403,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1405,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1406,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1410,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1411,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1412,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1417
    functionName: test_evutil_usleep
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - tt_int_op
    - evutil_timersub
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_evutil_usleep(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1429,1
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1430,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1452,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1453,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1460,1
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/test/regress_util.c:1460,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/test/regress_util.c:1463,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_util.c:1464,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1469,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_util.c:1469,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1470,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1471,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1473,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1475,1
    - Dst: abs
      Src: /src/libevent/test/regress_util.c:1475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1419
    functionDepth: 3
    functionLinenumber: 1419
    functionLinenumberEnd: 1479
    functionName: test_evutil_monotonic_res
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_timersub
    - strstr
    - evutil_timercmp
    - evutil_configure_monotonic_time_
    - evutil_gettime_monotonic_
    - TT_BLATHER
    - abs
    - tt_int_op
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_evutil_monotonic_res(void *data_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1486,1
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1487,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1497,1
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/test/regress_util.c:1497,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/test/regress_util.c:1501,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/test/regress_util.c:1504,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_util.c:1505,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1511,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_util.c:1511,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1512,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1513,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1515,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1517,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1522
    functionName: test_evutil_monotonic_prc
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_timersub
    - strstr
    - evutil_timercmp
    - evutil_configure_monotonic_time_
    - evutil_gettime_monotonic_
    - TT_BLATHER
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_monotonic_prc(void *data_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime
      Src: /src/libevent/test/regress_util.c:1528,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_util.c:1530,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:1530,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:1531,1
    - Dst: gmtime_r
      Src: /src/libevent/test/regress_util.c:1535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cur_p
    - t
    argTypes:
    - struct tm*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1537
    functionName: create_tm_from_unix_epoch
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - gmtime
    - exit
    - gmtime_r
    - strerror
    linkageType: ''
    returnType: void
    signature: void create_tm_from_unix_epoch(struct tm *cur_p, const time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_util.c:1580,1
    - Dst: evutil_date_rfc1123
      Src: /src/libevent/test/regress_util.c:1581,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1582,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1589,1
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_util.c:1592,1
    - Dst: evutil_date_rfc1123
      Src: /src/libevent/test/regress_util.c:1593,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1599
    functionName: test_evutil_date_rfc1123
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - strlen
    - tt_str_op
    - create_tm_from_unix_epoch
    - evutil_date_rfc1123
    linkageType: ''
    returnType: void
    signature: void test_evutil_date_rfc1123(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1615,1
    - Dst: evutil_v4addr_is_local_
      Src: /src/libevent/test/regress_util.c:1615,1
    - Dst: htonl
      Src: /src/libevent/test/regress_util.c:1618,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1619,1
    - Dst: evutil_v4addr_is_local_
      Src: /src/libevent/test/regress_util.c:1619,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1620,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1621,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1622,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1625,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1626,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1627,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1630,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1631,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1635
    functionName: test_evutil_v4addr_is_local
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_v4addr_is_local_
    - tt_int_op
    - htonl
    - LOCAL
    linkageType: ''
    returnType: void
    signature: void test_evutil_v4addr_is_local(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - 'yes'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1612
    functionName: LOCAL
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL(str, yes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1651,1
    - Dst: evutil_v6addr_is_local_
      Src: /src/libevent/test/regress_util.c:1651,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1652,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1655,1
    - Dst: evutil_v6addr_is_local_
      Src: /src/libevent/test/regress_util.c:1655,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1656,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1659,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1661,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1663,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1665,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1667,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1669,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1672,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1676
    functionName: test_evutil_v6addr_is_local
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_v6addr_is_local_
    - LOCAL6
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_v6addr_is_local(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - 'yes'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1649
    functionName: LOCAL6
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL6(str, yes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1683
    functionName: socketpair_init
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socketpair_init(evutil_socket_t fd[2])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_util.c:1689,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_util.c:1691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1692
    functionName: socketpair_close
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void socketpair_close(evutil_socket_t fd[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1705,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1706,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1706,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1707,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1707,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1708,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1708,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1709,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1709,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1712,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1712,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1713,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1713,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1714,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1715,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1715,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1716,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1717,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1718,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1718,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1719,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1721,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1721,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1722,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1722,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1723,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1724,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1724,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1725,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1727,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1727,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1728,1
    - Dst: socketpair_close
      Src: /src/libevent/test/regress_util.c:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1694
    functionDepth: 5
    functionLinenumber: 1694
    functionLinenumberEnd: 1732
    functionName: test_evutil_socketpair_create
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - socketpair_close
    - SOCKETPAIR_CHECK_CLOSE
    - socketpair_init
    - evutil_socketpair
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_socketpair_create(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1704
    functionName: SOCKETPAIR_CHECK_CLOSE
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCKETPAIR_CHECK_CLOSE(fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1739,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1750,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/test/regress_util.c:1753,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1757,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1757,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1758,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1759,1
    - Dst: getsockopt
      Src: /src/libevent/test/regress_util.c:1762,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1763,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1764,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1775,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1776,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1777,1
    - Dst: htonl
      Src: /src/libevent/test/regress_util.c:1777,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1778,1
    - Dst: htonl
      Src: /src/libevent/test/regress_util.c:1778,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1783,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1784,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1785,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1785,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1789,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1789,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1790,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1791,1
    - Dst: recv
      Src: /src/libevent/test/regress_util.c:1791,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1792,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1793,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1794,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1794,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1794,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1795,1
    - Dst: recv
      Src: /src/libevent/test/regress_util.c:1795,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1796,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_util.c:1798,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1799,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1799,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1799,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_util.c:1800,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1801,1
    - Dst: recv
      Src: /src/libevent/test/regress_util.c:1801,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_util.c:1802,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1803,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1803,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1803,1
    - Dst: socketpair_close
      Src: /src/libevent/test/regress_util.c:1806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1735
    functionDepth: 5
    functionLinenumber: 1735
    functionLinenumberEnd: 1807
    functionName: test_evutil_win_socketpair
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - socketpair_close
    - strstr
    - CHK_LOCALADDR
    - htonl
    - tt_str_op
    - strlen
    - memset
    - getsockopt
    - evutil_socketpair
    - shutdown
    - tt_int_op
    - send
    - recv
    - evutil_check_working_afunix_
    linkageType: ''
    returnType: void
    signature: void test_evutil_win_socketpair(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1772
    functionName: CHK_LOCALADDR
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHK_LOCALADDR(a, s, f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyExA
      Src: /src/libevent/test/regress_util.c:1817,1
    - Dst: RegQueryValueExA
      Src: /src/libevent/test/regress_util.c:1820,1
    - Dst: atoi
      Src: /src/libevent/test/regress_util.c:1822,1
    - Dst: RegCloseKey
      Src: /src/libevent/test/regress_util.c:1824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1827
    functionName: get_windows_build
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - RegCloseKey
    - atoi
    - RegQueryValueExA
    - RegOpenKeyExA
    linkageType: ''
    returnType: int
    signature: int get_windows_build()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_windows_build
      Src: /src/libevent/test/regress_util.c:1837,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1838,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/test/regress_util.c:1839,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1841,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1829
    functionDepth: 2
    functionLinenumber: 1829
    functionLinenumberEnd: 1846
    functionName: test_evutil_check_working_afunix
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - get_windows_build
    - evutil_check_working_afunix_
    linkageType: ''
    returnType: void
    signature: void test_evutil_check_working_afunix(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_weakrand
      Src: /src/libevent/test/regress_minheap.c:38,1
    - Dst: test_weakrand
      Src: /src/libevent/test/regress_minheap.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: set_random_timeout
    functionSourceFile: /src/libevent/test/regress_minheap.c
    functionUses: 0
    functionsReached:
    - test_weakrand
    linkageType: ''
    returnType: void
    signature: void set_random_timeout(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_minheap.c:49,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_minheap.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - heap
    argTypes:
    - struct min_heap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: check_heap
    functionSourceFile: /src/libevent/test/regress_minheap.c
    functionUses: 0
    functionsReached:
    - evutil_timercmp
    - tt_want
    linkageType: ''
    returnType: void
    signature: void check_heap(struct min_heap *heap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_ctor_
      Src: /src/libevent/test/regress_minheap.c:62,1
    - Dst: malloc
      Src: /src/libevent/test/regress_minheap.c:65,1
    - Dst: set_random_timeout
      Src: /src/libevent/test/regress_minheap.c:66,1
    - Dst: min_heap_push_
      Src: /src/libevent/test/regress_minheap.c:67,1
    - Dst: check_heap
      Src: /src/libevent/test/regress_minheap.c:69,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_minheap.c:71,1
    - Dst: min_heap_size_
      Src: /src/libevent/test/regress_minheap.c:71,1
    - Dst: min_heap_erase_
      Src: /src/libevent/test/regress_minheap.c:74,1
    - Dst: check_heap
      Src: /src/libevent/test/regress_minheap.c:76,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_minheap.c:78,1
    - Dst: min_heap_size_
      Src: /src/libevent/test/regress_minheap.c:78,1
    - Dst: min_heap_pop_
      Src: /src/libevent/test/regress_minheap.c:80,1
    - Dst: min_heap_pop_
      Src: /src/libevent/test/regress_minheap.c:82,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_minheap.c:85,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_minheap.c:85,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_minheap.c:88,1
    - Dst: min_heap_size_
      Src: /src/libevent/test/regress_minheap.c:88,1
    - Dst: free
      Src: /src/libevent/test/regress_minheap.c:91,1
    - Dst: min_heap_dtor_
      Src: /src/libevent/test/regress_minheap.c:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 94
    functionName: test_heap_randomized
    functionSourceFile: /src/libevent/test/regress_minheap.c
    functionUses: 0
    functionsReached:
    - set_random_timeout
    - free
    - min_heap_dtor_
    - tt_assert
    - malloc
    - evutil_timercmp
    - min_heap_ctor_
    - min_heap_pop_
    - min_heap_erase_
    - min_heap_size_
    - min_heap_push_
    - check_heap
    - tt_want
    linkageType: ''
    returnType: void
    signature: void test_heap_randomized(void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-eof.c:63,1
    - Dst: exit
      Src: /src/libevent/test/test-eof.c:64,1
    - Dst: recv
      Src: /src/libevent/test/test-eof.c:67,1
    - Dst: printf
      Src: /src/libevent/test/test-eof.c:69,1
    - Dst: event_add
      Src: /src/libevent/test/test-eof.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 79
    functionName: read_cb
    functionSourceFile: /src/libevent/test/test-eof.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    - event_add
    - recv
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-eof.c:92,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-eof.c:94,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-eof.c:97,1
    - Dst: send
      Src: /src/libevent/test/test-eof.c:101,1
    - Dst: strlen
      Src: /src/libevent/test/test-eof.c:101,1
    - Dst: shutdown
      Src: /src/libevent/test/test-eof.c:103,1
    - Dst: event_init
      Src: /src/libevent/test/test-eof.c:106,1
    - Dst: event_set
      Src: /src/libevent/test/test-eof.c:109,1
    - Dst: event_add
      Src: /src/libevent/test/test-eof.c:111,1
    - Dst: event_dispatch
      Src: /src/libevent/test/test-eof.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 116
    functionName: main
    functionSourceFile: /src/libevent/test/test-eof.c
    functionUses: 2
    functionsReached:
    - event_set
    - MAKEWORD
    - event_add
    - event_init
    - event_dispatch
    - strlen
    - WSAStartup
    - evutil_socketpair
    - shutdown
    - send
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: timer_callback
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timer_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: simple_callback
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simple_callback(struct event_callback *evcb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ev
    - arg
    argTypes:
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: event_finalize_callback_1
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_finalize_callback_1(struct event *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: callback_finalize_callback_1
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callback_finalize_callback_1(struct event_callback *evcb, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:86,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:87,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:89,1
    - Dst: event_callback_finalize_
      Src: /src/libevent/test/regress_finalize.c:90,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:92,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:94,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:95,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:98,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:102,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:103,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:105,1
    - Dst: event_callback_activate_
      Src: /src/libevent/test/regress_finalize.c:106,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:108,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:109,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:110,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:113,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:117,1
    - Dst: event_callback_activate_
      Src: /src/libevent/test/regress_finalize.c:118,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:119,1
    - Dst: event_callback_finalize_
      Src: /src/libevent/test/regress_finalize.c:120,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:122,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:123,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:124,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:128,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:132,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_finalize.c:133,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:134,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:135,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:137,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:138,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:141,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:144,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_finalize.c:145,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_finalize.c:146,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:147,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:148,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:149,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:151,1
    - Dst: event_del
      Src: /src/libevent/test/regress_finalize.c:152,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:153,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:155,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:156,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 162
    functionName: test_fin_cb_invoked
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_callback_activate_
    - event_base_dispatch
    - tt_assert
    - event_base_assert_ok_
    - event_callback_finalize_
    - event_finalize
    - event_free_finalize
    - event_active
    - evtimer_assign
    - evtimer_new
    - event_del
    - event_deferred_cb_init_
    - event_add
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_fin_cb_invoked(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_finalize.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: tfff_malloc
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tfff_malloc(size_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/test/regress_finalize.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: tfff_free
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tfff_free(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libevent/test/regress_finalize.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: tfff_realloc
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tfff_realloc(void *p, size_t sz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tinytest_set_test_skipped_
      Src: /src/libevent/test/regress_finalize.c:194,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_finalize.c:203,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_finalize.c:205,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_finalize.c:206,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:208,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:209,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:212,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:213,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:215,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:217,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:218,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:220,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:221,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:222,1
    - Dst: event_free
      Src: /src/libevent/test/regress_finalize.c:224,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_finalize.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 190
    functionDepth: 6
    functionLinenumber: 190
    functionLinenumberEnd: 230
    functionName: test_fin_free_finalize
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_set_mem_functions
    - tt_assert
    - event_base_assert_ok_
    - event_finalize
    - event_base_free
    - tinytest_set_test_skipped_
    - event_free_finalize
    - evtimer_new
    - event_free
    - tt_int_op
    - event_base_new
    linkageType: ''
    returnType: void
    signature: void test_fin_free_finalize(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free
      Src: /src/libevent/test/regress_finalize.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ev
    - arg
    argTypes:
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: event_finalize_callback_2
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_free
    linkageType: ''
    returnType: void
    signature: void event_finalize_callback_2(struct event *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:249,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 4
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: timer_callback_2
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_finalize
    linkageType: ''
    returnType: void
    signature: void timer_callback_2(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:264,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:265,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:270,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:271,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:274,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:275,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:277,1
    - Dst: event_new
      Src: /src/libevent/test/regress_finalize.c:280,1
    - Dst: event_new
      Src: /src/libevent/test/regress_finalize.c:281,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:283,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:284,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:286,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:287,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:288,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 256
    functionDepth: 5
    functionLinenumber: 256
    functionLinenumberEnd: 293
    functionName: test_fin_within_cb
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_base_assert_ok_
    - event_active
    - evtimer_new
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_fin_within_cb(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress_finalize.c:301,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:302,1
    - Dst: free
      Src: /src/libevent/test/regress_finalize.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ev
    - arg
    argTypes:
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: event_finalize_callback_free
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_assign
    - tt_int_op
    - free
    linkageType: ''
    returnType: void
    signature: void event_finalize_callback_free(struct event *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_finalize.c:319,1
    - Dst: event_new
      Src: /src/libevent/test/regress_finalize.c:319,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:320,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:320,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:321,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:321,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:324,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:325,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:326,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:330,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:330,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:333,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:333,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:334,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:335,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 312
    functionDepth: 5
    functionLinenumber: 312
    functionLinenumberEnd: 340
    functionName: test_fin_debug_use_after_free
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_base_dispatch
    - event_base_assert_ok_
    - event_finalize
    - tt_ptr_op
    - event_add
    - tt_int_op
    - event_new
    linkageType: ''
    returnType: void
    signature: void test_fin_debug_use_after_free(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: timer_callback_3
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timer_callback_3(evutil_socket_t *fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:365,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:366,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:367,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:368,1
    - Dst: event_callback_finalize_many
      Src: /src/libevent/test/regress_finalize.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 379
    functionName: test_fin_many
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_callback_finalize_many
    - evtimer_new
    - event_deferred_cb_init_
    linkageType: ''
    returnType: void
    signature: void test_fin_many(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: TEST
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(name, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: SSL_use_certificate
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_use_certificate(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: SSL_use_PrivateKey
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_use_PrivateKey(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: X509_free
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_free(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_mbedtls.c:94,1
    - Dst: event_debug
      Src: /src/libevent/test/regress_mbedtls.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - userdata
    - level
    - file
    - line
    - str
    argTypes:
    - void*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: mbedtls_debug
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - strlen
    - event_debug
    linkageType: ''
    returnType: void
    signature: "void mbedtls_debug(\n\tvoid *userdata, int level, const char *file,
      int line, const char *str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_secure_rng_init
      Src: /src/libevent/test/regress_mbedtls.c:108,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/test/regress_mbedtls.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - buffer
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 10
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: mbedtls_rng
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - evutil_secure_rng_get_bytes
    - evutil_secure_rng_init
    linkageType: ''
    returnType: int
    signature: int mbedtls_rng(void* ctx, unsigned char* buffer, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_mbedtls.c:119,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:120,1
    - Dst: mbedtls_pk_init
      Src: /src/libevent/test/regress_mbedtls.c:121,1
    - Dst: mbedtls_pk_parse_key
      Src: /src/libevent/test/regress_mbedtls.c:122,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:129,1
    - Dst: mbedtls_pk_free
      Src: /src/libevent/test/regress_mbedtls.c:133,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: mbedtls_getkey
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - free
    - tt_assert
    - malloc
    - mbedtls_pk_init
    - mbedtls_pk_free
    - mbedtls_pk_parse_key
    linkageType: ''
    returnType: mbedtls_pk_context
    signature: 'mbedtls_pk_context *

      mbedtls_getkey(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime
      Src: /src/libevent/test/regress_mbedtls.c:143,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_mbedtls.c:145,1
    - Dst: strerror
      Src: /src/libevent/test/regress_mbedtls.c:145,1
    - Dst: exit
      Src: /src/libevent/test/regress_mbedtls.c:146,1
    - Dst: gmtime_r
      Src: /src/libevent/test/regress_mbedtls.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cur_p
    - t
    argTypes:
    - struct tm*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: create_tm_from_unix_epoch
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 1
    functionsReached:
    - fprintf
    - gmtime
    - exit
    - gmtime_r
    - strerror
    linkageType: ''
    returnType: void
    signature: void create_tm_from_unix_epoch(struct tm *cur_p, const time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/test/regress_mbedtls.c:158,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_mbedtls.c:170,1
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_mbedtls.c:172,1
    - Dst: strftime
      Src: /src/libevent/test/regress_mbedtls.c:173,1
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_mbedtls.c:175,1
    - Dst: strftime
      Src: /src/libevent/test/regress_mbedtls.c:176,1
    - Dst: mbedtls_x509write_crt_init
      Src: /src/libevent/test/regress_mbedtls.c:178,1
    - Dst: mbedtls_x509write_crt_set_version
      Src: /src/libevent/test/regress_mbedtls.c:179,1
    - Dst: mbedtls_mpi_init
      Src: /src/libevent/test/regress_mbedtls.c:181,1
    - Dst: mbedtls_mpi_read_string
      Src: /src/libevent/test/regress_mbedtls.c:182,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:183,1
    - Dst: mbedtls_x509write_crt_set_serial
      Src: /src/libevent/test/regress_mbedtls.c:184,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:185,1
    - Dst: mbedtls_mpi_free
      Src: /src/libevent/test/regress_mbedtls.c:186,1
    - Dst: mbedtls_x509write_crt_set_subject_name
      Src: /src/libevent/test/regress_mbedtls.c:188,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:189,1
    - Dst: mbedtls_x509write_crt_set_issuer_name
      Src: /src/libevent/test/regress_mbedtls.c:190,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:191,1
    - Dst: mbedtls_x509write_crt_set_md_alg
      Src: /src/libevent/test/regress_mbedtls.c:193,1
    - Dst: mbedtls_x509write_crt_set_validity
      Src: /src/libevent/test/regress_mbedtls.c:196,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:197,1
    - Dst: mbedtls_x509write_crt_set_issuer_key
      Src: /src/libevent/test/regress_mbedtls.c:198,1
    - Dst: mbedtls_x509write_crt_set_subject_key
      Src: /src/libevent/test/regress_mbedtls.c:199,1
    - Dst: mbedtls_ctr_drbg_seed
      Src: /src/libevent/test/regress_mbedtls.c:201,1
    - Dst: strlen
      Src: /src/libevent/test/regress_mbedtls.c:202,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:203,1
    - Dst: mbedtls_x509write_crt_pem
      Src: /src/libevent/test/regress_mbedtls.c:204,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:206,1
    - Dst: mbedtls_x509write_crt_free
      Src: /src/libevent/test/regress_mbedtls.c:207,1
    - Dst: malloc
      Src: /src/libevent/test/regress_mbedtls.c:209,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:210,1
    - Dst: mbedtls_x509_crt_init
      Src: /src/libevent/test/regress_mbedtls.c:211,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/libevent/test/regress_mbedtls.c:212,1
    - Dst: strlen
      Src: /src/libevent/test/regress_mbedtls.c:212,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:213,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/libevent/test/regress_mbedtls.c:217,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - pk
    argTypes:
    - mbedtls_pk_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 221
    functionName: mbedtls_getcert
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_mpi_read_string
    - mbedtls_x509write_crt_set_subject_key
    - strftime
    - mbedtls_x509write_crt_set_serial
    - snprintf
    - strlen
    - mbedtls_x509write_crt_set_issuer_name
    - mbedtls_mpi_free
    - mbedtls_x509write_crt_set_md_alg
    - mbedtls_x509write_crt_set_validity
    - mbedtls_x509write_crt_init
    - mbedtls_x509_crt_free
    - mbedtls_x509write_crt_set_issuer_key
    - mbedtls_x509write_crt_set_version
    - time
    - tt_assert
    - mbedtls_mpi_init
    - malloc
    - mbedtls_x509write_crt_free
    - create_tm_from_unix_epoch
    - mbedtls_x509write_crt_pem
    - free
    - mbedtls_x509write_crt_set_subject_name
    - mbedtls_ctr_drbg_seed
    - mbedtls_x509_crt_parse
    - mbedtls_x509_crt_init
    linkageType: ''
    returnType: mbedtls_x509_crt
    signature: 'mbedtls_x509_crt *

      mbedtls_getcert(mbedtls_pk_context *pk)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_mbedtls.c:228,1
    - Dst: mbedtls_ssl_config_init
      Src: /src/libevent/test/regress_mbedtls.c:231,1
    - Dst: mbedtls_ssl_conf_renegotiation
      Src: /src/libevent/test/regress_mbedtls.c:232,1
    - Dst: mbedtls_ssl_conf_dbg
      Src: /src/libevent/test/regress_mbedtls.c:234,1
    - Dst: mbedtls_ssl_config_defaults
      Src: /src/libevent/test/regress_mbedtls.c:236,1
    - Dst: mbedtls_ssl_conf_rng
      Src: /src/libevent/test/regress_mbedtls.c:238,1
    - Dst: mbedtls_ssl_conf_max_version
      Src: /src/libevent/test/regress_mbedtls.c:243,1
    - Dst: mbedtls_ssl_conf_own_cert
      Src: /src/libevent/test/regress_mbedtls.c:248,1
    - Dst: mbedtls_ssl_conf_ca_chain
      Src: /src/libevent/test/regress_mbedtls.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - endpoint
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 254
    functionName: get_mbedtls_config
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 2
    functionsReached:
    - mbedtls_ssl_conf_max_version
    - mbedtls_ssl_config_defaults
    - malloc
    - mbedtls_ssl_conf_own_cert
    - mbedtls_ssl_conf_ca_chain
    - mbedtls_ssl_config_init
    - mbedtls_ssl_conf_renegotiation
    - mbedtls_ssl_conf_rng
    - mbedtls_ssl_conf_dbg
    linkageType: ''
    returnType: mbedtls_ssl_config
    signature: 'mbedtls_ssl_config *

      get_mbedtls_config(int endpoint)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_debug_set_threshold
      Src: /src/libevent/test/regress_mbedtls.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: init_mbedtls
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_debug_set_threshold
    linkageType: ''
    returnType: void
    signature: void init_mbedtls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_mbedtls
      Src: /src/libevent/test/regress_mbedtls.c:265,1
    - Dst: mbedtls_entropy_init
      Src: /src/libevent/test/regress_mbedtls.c:267,1
    - Dst: mbedtls_ctr_drbg_init
      Src: /src/libevent/test/regress_mbedtls.c:268,1
    - Dst: mbedtls_ctr_drbg_seed
      Src: /src/libevent/test/regress_mbedtls.c:269,1
    - Dst: mbedtls_getkey
      Src: /src/libevent/test/regress_mbedtls.c:272,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_mbedtls.c:273,1
    - Dst: mbedtls_getcert
      Src: /src/libevent/test/regress_mbedtls.c:275,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_mbedtls.c:276,1
    - Dst: basic_test_setup
      Src: /src/libevent/test/regress_mbedtls.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 262
    functionDepth: 11
    functionLinenumber: 262
    functionLinenumberEnd: 281
    functionName: mbedtls_test_setup
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ctr_drbg_init
    - mbedtls_entropy_init
    - mbedtls_getcert
    - init_mbedtls
    - EVUTIL_ASSERT
    - mbedtls_ctr_drbg_seed
    - basic_test_setup
    - mbedtls_getkey
    linkageType: ''
    returnType: void
    signature: 'void *

      mbedtls_test_setup(const struct testcase_t *testcase)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_cleanup
      Src: /src/libevent/test/regress_mbedtls.c:285,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/libevent/test/regress_mbedtls.c:300,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:301,1
    - Dst: mbedtls_pk_free
      Src: /src/libevent/test/regress_mbedtls.c:302,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:303,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/test/regress_mbedtls.c:306,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:307,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/test/regress_mbedtls.c:311,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 282
    functionDepth: 8
    functionLinenumber: 282
    functionLinenumberEnd: 317
    functionName: mbedtls_test_cleanup
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - free
    - mbedtls_ssl_config_free
    - mbedtls_x509_crt_free
    - basic_test_cleanup
    - mbedtls_pk_free
    linkageType: ''
    returnType: int
    signature: int mbedtls_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/regress_mbedtls.c:323,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_mbedtls.c:325,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_mbedtls.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 329
    functionName: bio_rwcount_read
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ERR_RW_RETRIABLE
    - recv
    - EVUTIL_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_read(void *ctx, unsigned char *out, size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/libevent/test/regress_mbedtls.c:334,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_mbedtls.c:336,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_mbedtls.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: bio_rwcount_write
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ERR_RW_RETRIABLE
    - send
    - EVUTIL_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_write(void *ctx, const unsigned char *in, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_set_bio
      Src: /src/libevent/test/regress_mbedtls.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - rw
    argTypes:
    - SSL*
    - struct rwcount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: BIO_setup
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 1
    functionsReached:
    - mbedtls_ssl_set_bio
    linkageType: ''
    returnType: void
    signature: void BIO_setup(SSL *ssl, struct rwcount *rw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: SLIST_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: SLIST_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: SLIST_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: SLIST_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: SLIST_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: SLIST_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: SLIST_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - slistelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: SLIST_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_AFTER(slistelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: SLIST_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: SLIST_REMOVE_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: LIST_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: LIST_ENTRY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: LIST_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: LIST_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: LIST_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: LIST_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: LIST_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: LIST_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: LIST_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_AFTER(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: LIST_INSERT_BEFORE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: LIST_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: LIST_REMOVE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REMOVE(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: LIST_REPLACE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REPLACE(elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: SIMPLEQ_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: SIMPLEQ_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: SIMPLEQ_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: SIMPLEQ_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: SIMPLEQ_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: SIMPLEQ_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: SIMPLEQ_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: SIMPLEQ_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: SIMPLEQ_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: SIMPLEQ_INSERT_TAIL
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: SIMPLEQ_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: SIMPLEQ_REMOVE_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_REMOVE_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: TAILQ_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: TAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: TAILQ_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: TAILQ_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: TAILQ_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - headname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: TAILQ_LAST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_LAST(head, headname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: TAILQ_PREV
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_PREV(elm, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: TAILQ_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: TAILQ_FOREACH_REVERSE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE(var, head, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: TAILQ_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 331
    functionName: TAILQ_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: TAILQ_INSERT_TAIL
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: TAILQ_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: TAILQ_INSERT_BEFORE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 364
    functionName: TAILQ_REMOVE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 374
    functionName: TAILQ_REPLACE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REPLACE(head, elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: CIRCLEQ_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: CIRCLEQ_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: CIRCLEQ_ENTRY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: CIRCLEQ_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: CIRCLEQ_LAST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_LAST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: CIRCLEQ_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    functionName: CIRCLEQ_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: CIRCLEQ_PREV
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_PREV(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: CIRCLEQ_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: CIRCLEQ_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: CIRCLEQ_FOREACH_REVERSE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_FOREACH_REVERSE(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: CIRCLEQ_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: CIRCLEQ_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: CIRCLEQ_INSERT_BEFORE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 451
    functionName: CIRCLEQ_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 461
    functionName: CIRCLEQ_INSERT_TAIL
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: CIRCLEQ_REMOVE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: CIRCLEQ_REPLACE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_REPLACE(head, elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: SPLAY_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: SPLAY_INIT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: SPLAY_ENTRY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: SPLAY_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: SPLAY_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SPLAY_ROOT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SPLAY_EMPTY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: SPLAY_ROTATE_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_RIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: SPLAY_ROTATE_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_LEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: SPLAY_LINKLEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKLEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: SPLAY_LINKRIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKRIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - head
    - ','
    - node
    - ','
    - left
    - ','
    - right
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: SPLAY_ASSEMBLE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ASSEMBLE(head, node, left, right, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: SPLAY_PROTOTYPE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_PROTOTYPE(name, type, field, cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_EMPTY
      Src: /src/libevent/compat/sys/tree.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: _SPLAY_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_EMPTY
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:136,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:137,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:138,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: _SPLAY_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_RIGHT
    - SPLAY_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_NEXT(struct name *head,
      struct type *elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_ROOT
      Src: /src/libevent/compat/sys/tree.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _SPLAY_MIN_MAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_ROOT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_MIN_MAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 239
    functionName: SPLAY_GENERATE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_GENERATE(name, type, field, cmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:244,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:244,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:249,1
    - Dst: SPLAY_ROTATE_RIGHT
      Src: /src/libevent/compat/sys/tree.h:253,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:254,1
    - Dst: SPLAY_LINKLEFT
      Src: /src/libevent/compat/sys/tree.h:257,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:259,1
    - Dst: SPLAY_ROTATE_LEFT
      Src: /src/libevent/compat/sys/tree.h:263,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:264,1
    - Dst: SPLAY_LINKRIGHT
      Src: /src/libevent/compat/sys/tree.h:267,1
    - Dst: SPLAY_ASSEMBLE
      Src: /src/libevent/compat/sys/tree.h:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - head
    - __comp
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: _SPLAY_MINMAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_ASSEMBLE
    - SPLAY_LINKRIGHT
    - SPLAY_RIGHT
    - SPLAY_LINKLEFT
    - SPLAY_ROTATE_RIGHT
    - SPLAY_ROTATE_LEFT
    - SPLAY_LEFT
    linkageType: ''
    returnType: void
    signature: void _SPLAY_MINMAX(struct name *head, int __comp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: SPLAY_INSERT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: SPLAY_REMOVE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: SPLAY_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: SPLAY_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: SPLAY_MIN
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: SPLAY_MAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: SPLAY_FOREACH
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: RB_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: RB_INIT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: RB_ENTRY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: RB_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: RB_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: RB_PARENT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PARENT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: RB_COLOR
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_COLOR(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: RB_ROOT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: RB_EMPTY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - parent
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: RB_SET
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET(elm, parent, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - black
    - ','
    - red
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: RB_SET_BLACKRED
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET_BLACKRED(black, red, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 354
    functionName: RB_ROTATE_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_LEFT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 374
    functionName: RB_ROTATE_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_RIGHT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 386
    functionName: RB_PROTOTYPE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PROTOTYPE(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 577
    functionName: RB_GENERATE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_GENERATE(name, type, field, cmp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:584,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:589,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:591,1
    - Dst: RB_SET
      Src: /src/libevent/compat/sys/tree.h:595,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:598,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:600,1
    - Dst: RB_AUGMENT
      Src: /src/libevent/compat/sys/tree.h:601,1
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 606
    functionName: _RB_INSERT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_AUGMENT
    - RB_RIGHT
    - RB_LEFT
    - RB_ROOT
    - RB_SET
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_INSERT(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:612,1
    - Dst: cmp
      Src: /src/libevent/compat/sys/tree.h:615,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:617,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: _RB_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_LEFT
    - RB_ROOT
    - cmp
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:629,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:630,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:631,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:632,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:634,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:636,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:638,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:640,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - elm
    argTypes:
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 645
    functionName: _RB_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_PARENT
    - RB_RIGHT
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_NEXT(struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:650,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:655,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 660
    functionName: _RB_MINMAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_LEFT
    - RB_ROOT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_MINMAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: RB_INSERT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 667
    functionName: RB_REMOVE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: RB_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: RB_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 670
    functionName: RB_MIN
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: RB_MAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: RB_FOREACH
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: eq
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eq(double a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/sample/watch-timing.c:83,1
    - Dst: calloc
      Src: /src/libevent/sample/watch-timing.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - max_bins
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: histogram_new
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    linkageType: ''
    returnType: struct histogram
    signature: 'struct histogram *

      histogram_new(unsigned max_bins)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/sample/watch-timing.c:97,1
    - Dst: free
      Src: /src/libevent/sample/watch-timing.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: histogram_free
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void histogram_free(struct histogram *h)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:130,1
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - h
    - observation
    argTypes:
    - struct histogram*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 185
    functionName: histogram_update
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - eq
    linkageType: ''
    returnType: void
    signature: void histogram_update(struct histogram *h, double observation)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:245,1
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:247,1
    - Dst: sqrt
      Src: /src/libevent/sample/watch-timing.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - h
    - quantile
    argTypes:
    - struct histogram*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 254
    functionName: histogram_query
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - eq
    - sqrt
    linkageType: ''
    returnType: double
    signature: double histogram_query(const struct histogram *h, double quantile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/watch-timing.c:286,1
    - Dst: evwatch_prepare_get_timeout
      Src: /src/libevent/sample/watch-timing.c:287,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/watch-timing.c:289,1
    - Dst: histogram_update
      Src: /src/libevent/sample/watch-timing.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: on_prepare
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - histogram_update
    - evutil_timersub
    - evwatch_prepare_get_timeout
    linkageType: ''
    returnType: void
    signature: void on_prepare(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/watch-timing.c:297,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/watch-timing.c:298,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/watch-timing.c:299,1
    - Dst: histogram_update
      Src: /src/libevent/sample/watch-timing.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_check_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: on_check
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - histogram_update
    - evutil_timersub
    linkageType: ''
    returnType: void
    signature: void on_check(struct evwatch *watcher, const struct evwatch_check_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/watch-timing.c:307,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:308,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:309,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:310,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 312
    functionName: on_timeout
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 10
    functionsReached:
    - printf
    - histogram_query
    linkageType: ''
    returnType: void
    signature: void on_timeout(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/watch-timing.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sig
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: on_sigint
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void on_sigint(evutil_socket_t sig, short events, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/sample/watch-timing.c:327,1
    - Dst: histogram_new
      Src: /src/libevent/sample/watch-timing.c:328,1
    - Dst: histogram_new
      Src: /src/libevent/sample/watch-timing.c:329,1
    - Dst: evwatch_prepare_new
      Src: /src/libevent/sample/watch-timing.c:333,1
    - Dst: evwatch_check_new
      Src: /src/libevent/sample/watch-timing.c:334,1
    - Dst: event_new
      Src: /src/libevent/sample/watch-timing.c:337,1
    - Dst: event_add
      Src: /src/libevent/sample/watch-timing.c:340,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/watch-timing.c:343,1
    - Dst: event_add
      Src: /src/libevent/sample/watch-timing.c:346,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/watch-timing.c:349,1
    - Dst: event_free
      Src: /src/libevent/sample/watch-timing.c:352,1
    - Dst: event_free
      Src: /src/libevent/sample/watch-timing.c:353,1
    - Dst: event_base_free
      Src: /src/libevent/sample/watch-timing.c:354,1
    - Dst: histogram_free
      Src: /src/libevent/sample/watch-timing.c:355,1
    - Dst: histogram_free
      Src: /src/libevent/sample/watch-timing.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 359
    functionName: main
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 2
    functionsReached:
    - histogram_free
    - event_base_dispatch
    - histogram_new
    - event_base_free
    - evwatch_prepare_new
    - event_free
    - evsignal_new
    - event_add
    - evwatch_check_new
    - event_base_new
    - event_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 27
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 111
    functionName: Curl_raw_toupper
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char Curl_raw_toupper(char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:126,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:126,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:135,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: Curl_raw_equal
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: int
    signature: int Curl_raw_equal(const char *first, const char *second)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:141,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:141,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:151,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - first
    - second
    - max
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: Curl_raw_nequal
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: int
    signature: int Curl_raw_nequal(const char *first, const char *second, size_t max)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:168,1
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:170,1
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:176,1
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:177,1
    - Dst: Curl_raw_nequal
      Src: /src/libevent/sample/hostcheck.c:179,1
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:183,1
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:186,1
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:188,1
    - Dst: Curl_raw_nequal
      Src: /src/libevent/sample/hostcheck.c:199,1
    - Dst: Curl_raw_nequal
      Src: /src/libevent/sample/hostcheck.c:200,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - hostname
    - pattern
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 203
    functionName: hostmatch
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - Curl_raw_nequal
    - Curl_raw_equal
    - strchr
    linkageType: ''
    returnType: int
    signature: int hostmatch(const char *hostname, const char *pattern)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:211,1
    - Dst: hostmatch
      Src: /src/libevent/sample/hostcheck.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - match_pattern
    - hostname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: Curl_cert_hostcheck
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - hostmatch
    - Curl_raw_equal
    linkageType: ''
    returnType: int
    signature: int Curl_cert_hostcheck(const char *match_pattern, const char *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/sample/dns-example.c:49,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/dns-example.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: debug_ntoa
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - ntohl
    - evutil_snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      debug_ntoa(u32 address)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:65,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:70,1
    - Dst: debug_ntoa
      Src: /src/libevent/sample/dns-example.c:70,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:72,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:76,1
    - Dst: fflush
      Src: /src/libevent/sample/dns-example.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addrs
    - orig
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: main_callback
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - printf
    - debug_ntoa
    - fflush
    linkageType: ''
    returnType: void
    signature: "void main_callback(int result, char type, int count, int ttl,\n\t\t\t
      \ void *addrs, void *orig)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:89,1
    - Dst: evutil_gai_strerror
      Src: /src/libevent/sample/dns-example.c:89,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:92,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/dns-example.c:98,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:100,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/dns-example.c:104,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:106,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/sample/dns-example.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - err
    - ai
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: gai_callback
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - evutil_freeaddrinfo
    - printf
    - evutil_inet_ntop
    - evutil_gai_strerror
    linkageType: ''
    returnType: void
    signature: void gai_callback(int err, struct evutil_addrinfo *ai, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libevent/sample/dns-example.c:122,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:125,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/sample/dns-example.c:126,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:129,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:132,1
    - Dst: evdns_server_request_add_ptr_reply
      Src: /src/libevent/sample/dns-example.c:133,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:136,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:138,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/sample/dns-example.c:143,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 146
    functionName: evdns_server_callback
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - printf
    - evdns_server_request_add_ptr_reply
    - htonl
    - evdns_server_request_respond
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void evdns_server_callback(struct evdns_server_request *req, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - is_warn
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: logfn
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void logfn(int is_warn, const char *msg)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/dns-example.c:171,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:174,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:175,1
    - Dst: getopt
      Src: /src/libevent/sample/dns-example.c:179,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:187,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/dns-example.c:194,1
    - Dst: event_base_new
      Src: /src/libevent/sample/dns-example.c:198,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:200,1
    - Dst: evdns_base_new
      Src: /src/libevent/sample/dns-example.c:203,1
    - Dst: event_base_free
      Src: /src/libevent/sample/dns-example.c:205,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:206,1
    - Dst: evdns_set_log_fn
      Src: /src/libevent/sample/dns-example.c:210,1
    - Dst: socket
      Src: /src/libevent/sample/dns-example.c:215,1
    - Dst: perror
      Src: /src/libevent/sample/dns-example.c:217,1
    - Dst: exit
      Src: /src/libevent/sample/dns-example.c:218,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/sample/dns-example.c:220,1
    - Dst: htons
      Src: /src/libevent/sample/dns-example.c:222,1
    - Dst: bind
      Src: /src/libevent/sample/dns-example.c:224,1
    - Dst: perror
      Src: /src/libevent/sample/dns-example.c:225,1
    - Dst: exit
      Src: /src/libevent/sample/dns-example.c:226,1
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/sample/dns-example.c:228,1
    - Dst: evdns_base_config_windows_nameservers
      Src: /src/libevent/sample/dns-example.c:234,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/sample/dns-example.c:238,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/sample/dns-example.c:240,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:244,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:249,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/sample/dns-example.c:253,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:254,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:257,1
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/sample/dns-example.c:258,1
    - Dst: memset
      Src: /src/libevent/sample/dns-example.c:261,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:265,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/sample/dns-example.c:266,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:269,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/sample/dns-example.c:270,1
    - Dst: fflush
      Src: /src/libevent/sample/dns-example.c:273,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/dns-example.c:274,1
    - Dst: evdns_base_free
      Src: /src/libevent/sample/dns-example.c:275,1
    - Dst: event_base_free
      Src: /src/libevent/sample/dns-example.c:276,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 100
    argCount: 2
    argNames:
    - c
    - v
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 157
    functionDepth: 10
    functionLinenumber: 157
    functionLinenumberEnd: 278
    functionName: main
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 2
    functionsReached:
    - event_base_dispatch
    - evdns_set_log_fn
    - evdns_add_server_port_with_base
    - evdns_base_resolv_conf_parse
    - fflush
    - evdns_base_resolve_ipv4
    - evutil_make_socket_nonblocking
    - exit
    - WSAStartup
    - event_base_new
    - printf
    - socket
    - evdns_base_free
    - evdns_base_config_windows_nameservers
    - perror
    - evdns_getaddrinfo
    - memset
    - evdns_base_new
    - fprintf
    - getopt
    - evutil_inet_pton
    - event_base_free
    - evdns_base_nameserver_ip_add
    - htons
    - bind
    - evdns_base_resolve_reverse
    linkageType: ''
    returnType: int
    signature: int main(int c, char **v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: S_ISDIR
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/libevent/sample/http-server.c:120,1
    - Dst: strchr
      Src: /src/libevent/sample/http-server.c:121,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/sample/http-server.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: guess_content_type
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strchr
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: char
    signature: 'char *

      guess_content_type(const char *path)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_command
      Src: /src/libevent/sample/http-server.c:143,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:156,1
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/sample/http-server.c:157,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/sample/http-server.c:159,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:162,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/sample/http-server.c:165,1
    - Dst: puts
      Src: /src/libevent/sample/http-server.c:166,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/http-server.c:167,1
    - Dst: evbuffer_remove
      Src: /src/libevent/sample/http-server.c:170,1
    - Dst: fwrite
      Src: /src/libevent/sample/http-server.c:172,1
    - Dst: puts
      Src: /src/libevent/sample/http-server.c:174,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/sample/http-server.c:176,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 177
    functionName: dump_request_cb
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - printf
    - evhttp_request_get_command
    - evhttp_send_reply
    - fwrite
    - evhttp_request_get_input_headers
    - puts
    - evbuffer_get_length
    - evhttp_request_get_uri
    - evbuffer_remove
    linkageType: ''
    returnType: void
    signature: void dump_request_cb(struct evhttp_request *req, void *arg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/sample/http-server.c:188,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/sample/http-server.c:197,1
    - Dst: dump_request_cb
      Src: /src/libevent/sample/http-server.c:198,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:202,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/sample/http-server.c:205,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:207,1
    - Dst: evhttp_send_error
      Src: /src/libevent/sample/http-server.c:208,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/sample/http-server.c:213,1
    - Dst: evhttp_uridecode
      Src: /src/libevent/sample/http-server.c:217,1
    - Dst: strstr
      Src: /src/libevent/sample/http-server.c:224,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:227,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:227,1
    - Dst: malloc
      Src: /src/libevent/sample/http-server.c:228,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:229,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/http-server.c:232,1
    - Dst: stat
      Src: /src/libevent/sample/http-server.c:234,1
    - Dst: evbuffer_new
      Src: /src/libevent/sample/http-server.c:239,1
    - Dst: S_ISDIR
      Src: /src/libevent/sample/http-server.c:241,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:255,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:255,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:259,1
    - Dst: malloc
      Src: /src/libevent/sample/http-server.c:260,1
    - Dst: memcpy
      Src: /src/libevent/sample/http-server.c:263,1
    - Dst: FindFirstFileA
      Src: /src/libevent/sample/http-server.c:267,1
    - Dst: free
      Src: /src/libevent/sample/http-server.c:268,1
    - Dst: opendir
      Src: /src/libevent/sample/http-server.c:272,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/sample/http-server.c:276,1
    - Dst: readdir
      Src: /src/libevent/sample/http-server.c:294,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/sample/http-server.c:297,1
    - Dst: FindNextFileA
      Src: /src/libevent/sample/http-server.c:301,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/sample/http-server.c:305,1
    - Dst: FindClose
      Src: /src/libevent/sample/http-server.c:307,1
    - Dst: closedir
      Src: /src/libevent/sample/http-server.c:309,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-server.c:311,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/sample/http-server.c:311,1
    - Dst: guess_content_type
      Src: /src/libevent/sample/http-server.c:316,1
    - Dst: open
      Src: /src/libevent/sample/http-server.c:317,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:318,1
    - Dst: fstat
      Src: /src/libevent/sample/http-server.c:322,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:325,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-server.c:328,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/sample/http-server.c:328,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/sample/http-server.c:330,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/sample/http-server.c:333,1
    - Dst: evhttp_send_error
      Src: /src/libevent/sample/http-server.c:336,1
    - Dst: close
      Src: /src/libevent/sample/http-server.c:338,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/sample/http-server.c:341,1
    - Dst: free
      Src: /src/libevent/sample/http-server.c:343,1
    - Dst: free
      Src: /src/libevent/sample/http-server.c:345,1
    - Dst: evbuffer_free
      Src: /src/libevent/sample/http-server.c:347,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 348
    functionName: send_document_cb
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - opendir
    - strstr
    - strlen
    - open
    - evbuffer_free
    - FindClose
    - evhttp_request_get_uri
    - evutil_snprintf
    - closedir
    - stat
    - S_ISDIR
    - evhttp_request_get_command
    - FindFirstFileA
    - evhttp_uridecode
    - FindNextFileA
    - evhttp_send_reply
    - close
    - evhttp_send_error
    - fstat
    - printf
    - evhttp_uri_free
    - evbuffer_new
    - malloc
    - evbuffer_add_file
    - evhttp_uri_get_path
    - perror
    - memcpy
    - evhttp_request_get_output_headers
    - free
    - dump_request_cb
    - readdir
    - evhttp_add_header
    - evbuffer_add_printf
    - evhttp_uri_parse
    - guess_content_type
    linkageType: ''
    returnType: void
    signature: void send_document_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:353,1
    - Dst: exit
      Src: /src/libevent/sample/http-server.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - prog
    - exit_code
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: print_usage
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_usage(FILE *out, const char *prog, int exit_code)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/http-server.c:370,1
    - Dst: getopt
      Src: /src/libevent/sample/http-server.c:372,1
    - Dst: atoi
      Src: /src/libevent/sample/http-server.c:374,1
    - Dst: atoi
      Src: /src/libevent/sample/http-server.c:378,1
    - Dst: print_usage
      Src: /src/libevent/sample/http-server.c:381,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:382,1
    - Dst: print_usage
      Src: /src/libevent/sample/http-server.c:387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 392
    functionName: parse_opts
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - atoi
    - fprintf
    - print_usage
    - getopt
    - memset
    linkageType: ''
    returnType: struct options
    signature: struct options parse_opts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/http-server.c:398,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:399,1
    - Dst: evutil_strsignal
      Src: /src/libevent/sample/http-server.c:400,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/sample/http-server.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 401
    functionName: do_term
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - EV_SOCK_ARG
    - fprintf
    - event_base_loopbreak
    - evutil_strsignal
    linkageType: ''
    returnType: void
    signature: void do_term(evutil_socket_t sig, short events, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/sample/http-server.c:414,1
    - Dst: memset
      Src: /src/libevent/sample/http-server.c:415,1
    - Dst: getsockname
      Src: /src/libevent/sample/http-server.c:416,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:417,1
    - Dst: ntohs
      Src: /src/libevent/sample/http-server.c:422,1
    - Dst: ntohs
      Src: /src/libevent/sample/http-server.c:425,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:430,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 438
    functionName: display_listen_sock
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - printf
    - fprintf
    - evhttp_bound_socket_get_fd
    - getsockname
    - ntohs
    - perror
    - memset
    linkageType: ''
    returnType: int
    signature: int display_listen_sock(struct evhttp_bound_socket *handle)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: parse_opts
      Src: /src/libevent/sample/http-server.c:463,1
    - Dst: MAKEWORD
      Src: /src/libevent/sample/http-server.c:470,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/http-server.c:471,1
    - Dst: signal
      Src: /src/libevent/sample/http-server.c:474,1
    - Dst: setbuf
      Src: /src/libevent/sample/http-server.c:480,1
    - Dst: setbuf
      Src: /src/libevent/sample/http-server.c:481,1
    - Dst: getenv
      Src: /src/libevent/sample/http-server.c:484,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/sample/http-server.c:485,1
    - Dst: event_config_new
      Src: /src/libevent/sample/http-server.c:487,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/sample/http-server.c:491,1
    - Dst: event_config_set_num_cpus_hint
      Src: /src/libevent/sample/http-server.c:492,1
    - Dst: event_config_set_flag
      Src: /src/libevent/sample/http-server.c:494,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/sample/http-server.c:498,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:500,1
    - Dst: event_config_free
      Src: /src/libevent/sample/http-server.c:503,1
    - Dst: evhttp_new
      Src: /src/libevent/sample/http-server.c:507,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:509,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/sample/http-server.c:514,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/sample/http-server.c:518,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/sample/http-server.c:520,1
    - Dst: unlink
      Src: /src/libevent/sample/http-server.c:526,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:527,1
    - Dst: strcpy
      Src: /src/libevent/sample/http-server.c:533,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/http-server.c:535,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:539,1
    - Dst: evhttp_bind_listener
      Src: /src/libevent/sample/http-server.c:544,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:546,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:551,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/sample/http-server.c:557,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:559,1
    - Dst: display_listen_sock
      Src: /src/libevent/sample/http-server.c:565,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/http-server.c:570,1
    - Dst: event_add
      Src: /src/libevent/sample/http-server.c:573,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/http-server.c:576,1
    - Dst: WSACleanup
      Src: /src/libevent/sample/http-server.c:579,1
    - Dst: event_config_free
      Src: /src/libevent/sample/http-server.c:584,1
    - Dst: evhttp_free
      Src: /src/libevent/sample/http-server.c:586,1
    - Dst: event_free
      Src: /src/libevent/sample/http-server.c:588,1
    - Dst: event_base_free
      Src: /src/libevent/sample/http-server.c:590,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 454
    functionDepth: 6
    functionLinenumber: 454
    functionLinenumberEnd: 593
    functionName: main
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 2
    functionsReached:
    - strcpy
    - event_base_dispatch
    - MAKEWORD
    - event_free
    - evhttp_set_cb
    - evhttp_bind_socket_with_handle
    - event_enable_debug_logging
    - evconnlistener_new_bind
    - setbuf
    - parse_opts
    - event_config_free
    - WSAStartup
    - event_add
    - unlink
    - WSACleanup
    - evhttp_new
    - evhttp_set_gencb
    - getenv
    - evthread_use_windows_threads
    - event_base_new_with_config
    - evhttp_set_max_body_size
    - event_config_set_flag
    - perror
    - evhttp_free
    - fprintf
    - event_base_free
    - evhttp_bind_listener
    - display_listen_sock
    - signal
    - event_config_new
    - evsignal_new
    - event_config_set_num_cpus_hint
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: VERIFY
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:29,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/sample/http-connect.c:29,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:30,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:30,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:31,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: uri_parse
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 3
    functionsReached:
    - evhttp_uri_get_host
    - evhttp_uri_parse
    - evhttp_uri_get_port
    - VERIFY
    linkageType: ''
    returnType: struct evhttp_uri
    signature: struct evhttp_uri * uri_parse(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:38,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/sample/http-connect.c:38,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/sample/http-connect.c:40,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/sample/http-connect.c:41,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/sample/http-connect.c:42,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/sample/http-connect.c:43,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/sample/http-connect.c:44,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:45,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/sample/http-connect.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - uri
    - buffer
    argTypes:
    - struct evhttp_uri*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: uri_path
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - VERIFY
    - evhttp_uri_set_scheme
    - evhttp_uri_join
    - evhttp_uri_set_userinfo
    - evhttp_uri_parse
    - evhttp_uri_set_port
    - evhttp_uri_set_host
    linkageType: ''
    returnType: char
    signature: char * uri_path(struct evhttp_uri *uri, char buffer[URL_MAX])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:50,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/sample/http-connect.c:50,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:51,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:51,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:52,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:52,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/http-connect.c:53,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:54,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - uri
    - buffer
    argTypes:
    - struct evhttp_uri*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: uri_hostport
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - VERIFY
    - evhttp_uri_get_port
    - evhttp_uri_join
    - evhttp_uri_get_host
    - evutil_snprintf
    linkageType: ''
    returnType: char
    signature: char * uri_hostport(struct evhttp_uri *uri, char buffer[URL_MAX])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:63,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/sample/http-connect.c:65,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/http-connect.c:66,1
    - Dst: fwrite
      Src: /src/libevent/sample/http-connect.c:67,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/sample/http-connect.c:67,1
    - Dst: evbuffer_drain
      Src: /src/libevent/sample/http-connect.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: get_cb
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_input_buffer
    - VERIFY
    - fwrite
    - evbuffer_get_length
    - evbuffer_drain
    - evbuffer_pullup
    linkageType: ''
    returnType: void
    signature: void get_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:79,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:80,1
    - Dst: evhttp_request_new
      Src: /src/libevent/sample/http-connect.c:82,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:83,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:84,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:84,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:85,1
    - Dst: evhttp_make_request
      Src: /src/libevent/sample/http-connect.c:85,1
    - Dst: uri_path
      Src: /src/libevent/sample/http-connect.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - proxy_req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: connect_cb
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - uri_path
    - VERIFY
    - evhttp_request_new
    - evhttp_add_header
    - evhttp_uri_get_host
    - evhttp_make_request
    linkageType: ''
    returnType: void
    signature: void connect_cb(struct evhttp_request *proxy_req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/http-connect.c:103,1
    - Dst: uri_parse
      Src: /src/libevent/sample/http-connect.c:107,1
    - Dst: uri_parse
      Src: /src/libevent/sample/http-connect.c:108,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:110,1
    - Dst: event_base_new
      Src: /src/libevent/sample/http-connect.c:110,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:111,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/sample/http-connect.c:111,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:112,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:112,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:115,1
    - Dst: evhttp_request_new
      Src: /src/libevent/sample/http-connect.c:115,1
    - Dst: uri_hostport
      Src: /src/libevent/sample/http-connect.c:117,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:118,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:119,1
    - Dst: evhttp_make_request
      Src: /src/libevent/sample/http-connect.c:120,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/http-connect.c:122,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/sample/http-connect.c:124,1
    - Dst: event_base_free
      Src: /src/libevent/sample/http-connect.c:125,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/sample/http-connect.c:126,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/sample/http-connect.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 130
    functionName: main
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 2
    functionsReached:
    - printf
    - uri_hostport
    - event_base_dispatch
    - evhttp_uri_free
    - VERIFY
    - evhttp_uri_get_port
    - event_base_free
    - evhttp_request_new
    - evhttp_connection_base_new
    - evhttp_add_header
    - uri_parse
    - evhttp_uri_get_host
    - evhttp_make_request
    - evhttp_connection_free
    - event_base_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:43,1
    - Dst: ReadFile
      Src: /src/libevent/sample/event-read-fifo.c:46,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:50,1
    - Dst: event_del
      Src: /src/libevent/sample/event-read-fifo.c:51,1
    - Dst: read
      Src: /src/libevent/sample/event-read-fifo.c:57,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:61,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:63,1
    - Dst: event_del
      Src: /src/libevent/sample/event-read-fifo.c:64,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/event-read-fifo.c:65,1
    - Dst: event_get_base
      Src: /src/libevent/sample/event-read-fifo.c:65,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: fifo_read
    functionSourceFile: /src/libevent/sample/event-read-fifo.c
    functionUses: 0
    functionsReached:
    - fprintf
    - event_get_base
    - ReadFile
    - event_del
    - read
    - perror
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void fifo_read(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/event-read-fifo.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/event-read-fifo.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileA
      Src: /src/libevent/sample/event-read-fifo.c:92,1
    - Dst: lstat
      Src: /src/libevent/sample/event-read-fifo.c:109,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:112,1
    - Dst: exit
      Src: /src/libevent/sample/event-read-fifo.c:113,1
    - Dst: unlink
      Src: /src/libevent/sample/event-read-fifo.c:117,1
    - Dst: mkfifo
      Src: /src/libevent/sample/event-read-fifo.c:118,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:119,1
    - Dst: exit
      Src: /src/libevent/sample/event-read-fifo.c:120,1
    - Dst: open
      Src: /src/libevent/sample/event-read-fifo.c:123,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:126,1
    - Dst: exit
      Src: /src/libevent/sample/event-read-fifo.c:127,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:130,1
    - Dst: event_base_new
      Src: /src/libevent/sample/event-read-fifo.c:133,1
    - Dst: event_new
      Src: /src/libevent/sample/event-read-fifo.c:137,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/event-read-fifo.c:138,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/event-read-fifo.c:141,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:143,1
    - Dst: event_add
      Src: /src/libevent/sample/event-read-fifo.c:146,1
    - Dst: event_new
      Src: /src/libevent/sample/event-read-fifo.c:148,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/event-read-fifo.c:149,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:152,1
    - Dst: event_add
      Src: /src/libevent/sample/event-read-fifo.c:157,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/event-read-fifo.c:159,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:162,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:164,1
    - Dst: event_base_free
      Src: /src/libevent/sample/event-read-fifo.c:165,1
    - Dst: CloseHandle
      Src: /src/libevent/sample/event-read-fifo.c:167,1
    - Dst: close
      Src: /src/libevent/sample/event-read-fifo.c:169,1
    - Dst: unlink
      Src: /src/libevent/sample/event-read-fifo.c:170,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/sample/event-read-fifo.c:172,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:178,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:181,1
    - Dst: event_base_free
      Src: /src/libevent/sample/event-read-fifo.c:182,1
    - Dst: CloseHandle
      Src: /src/libevent/sample/event-read-fifo.c:184,1
    - Dst: close
      Src: /src/libevent/sample/event-read-fifo.c:186,1
    - Dst: unlink
      Src: /src/libevent/sample/event-read-fifo.c:187,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/sample/event-read-fifo.c:189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 191
    functionName: main
    functionSourceFile: /src/libevent/sample/event-read-fifo.c
    functionUses: 2
    functionsReached:
    - event_base_dispatch
    - open
    - lstat
    - event_free
    - libevent_global_shutdown
    - event_new
    - exit
    - close
    - CreateFileA
    - event_add
    - unlink
    - event_self_cbarg
    - event_base_new
    - mkfifo
    - perror
    - fprintf
    - CloseHandle
    - event_base_free
    - evsignal_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:114,1
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:115,1
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:116,1
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: syntax
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void syntax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: err
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 14
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void err(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_strerror
      Src: /src/libevent/sample/https-client.c:131,1
    - Dst: fprintf
      Src: /src/libevent/sample/https-client.c:132,1
    - Dst: exit
      Src: /src/libevent/sample/https-client.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - err
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: err_mbedtls
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - mbedtls_strerror
    linkageType: ''
    returnType: void
    signature: void err_mbedtls(const char* func, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - userdata
    - crt
    - depth
    - flags
    argTypes:
    - void*
    - mbedtls_x509_crt*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: cert_verify_callback
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cert_verify_callback(void *userdata, mbedtls_x509_crt *crt,\n\t\t\t\t\t\t\t\tint
      depth, uint32_t *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/https-client.c:147,1
    - Dst: ERR_print_errors_fp
      Src: /src/libevent/sample/https-client.c:151,1
    - Dst: exit
      Src: /src/libevent/sample/https-client.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: err_openssl
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - ERR_print_errors_fp
    linkageType: ''
    returnType: void
    signature: void err_openssl(const char *func)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_verify_cert
      Src: /src/libevent/sample/https-client.c:175,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/libevent/sample/https-client.c:177,1
    - Dst: validate_hostname
      Src: /src/libevent/sample/https-client.c:180,1
    - Dst: X509_NAME_oneline
      Src: /src/libevent/sample/https-client.c:204,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/https-client.c:204,1
    - Dst: printf
      Src: /src/libevent/sample/https-client.c:208,1
    - Dst: printf
      Src: /src/libevent/sample/https-client.c:213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - x509_ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 217
    functionName: cert_verify_callback
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - printf
    - X509_STORE_CTX_get_current_cert
    - X509_get_subject_name
    - validate_hostname
    - X509_NAME_oneline
    linkageType: ''
    returnType: int
    signature: int cert_verify_callback(X509_STORE_CTX *x509_ctx, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CertOpenSystemStore
      Src: /src/libevent/sample/https-client.c:228,1
    - Dst: err
      Src: /src/libevent/sample/https-client.c:230,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/libevent/sample/https-client.c:233,1
    - Dst: d2i_X509
      Src: /src/libevent/sample/https-client.c:234,1
    - Dst: X509_STORE_add_cert
      Src: /src/libevent/sample/https-client.c:237,1
    - Dst: X509_free
      Src: /src/libevent/sample/https-client.c:238,1
    - Dst: err_openssl
      Src: /src/libevent/sample/https-client.c:241,1
    - Dst: CertCloseStore
      Src: /src/libevent/sample/https-client.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - store
    - name
    argTypes:
    - X509_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 247
    functionName: add_cert_for_store
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - X509_STORE_add_cert
    - CertCloseStore
    - X509_free
    - CertEnumCertificatesInStore
    - err_openssl
    - d2i_X509
    - CertOpenSystemStore
    - err
    linkageType: ''
    returnType: int
    signature: int add_cert_for_store(X509_STORE *store, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/sample/https-client.c:253,1
    - Dst: strncpy
      Src: /src/libevent/sample/https-client.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - chars
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: strndup
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - malloc
    - strncpy
    linkageType: ''
    returnType: char
    signature: char * strndup(const char* src, size_t chars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:89,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - level
    - file
    - line
    - str
    argTypes:
    - void*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: my_debug
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_fprintf
    - fflush
    linkageType: ''
    returnType: void
    signature: void my_debug(void *ctx, int level, const char *file, int line, const
      char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: writecb
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 4
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void writecb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_read
      Src: /src/libevent/sample/ssl-client-mbedtls.c:106,1
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:107,1
    - Dst: fwrite
      Src: /src/libevent/sample/ssl-client-mbedtls.c:109,1
    - Dst: fwrite
      Src: /src/libevent/sample/ssl-client-mbedtls.c:110,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:111,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/ssl-client-mbedtls.c:113,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/sample/ssl-client-mbedtls.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: readcb
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 3
    functionsReached:
    - bufferevent_read
    - fprintf
    - fflush
    - bufferevent_get_base
    - fwrite
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:122,1
    - Dst: bufferevent_write
      Src: /src/libevent/sample/ssl-client-mbedtls.c:129,1
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:132,1
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:134,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 8
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: eventcb
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 6
    functionsReached:
    - bufferevent_write
    - fprintf
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void eventcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/ssl-client-mbedtls.c:163,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/ssl-client-mbedtls.c:165,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:167,1
    - Dst: mbedtls_debug_set_threshold
      Src: /src/libevent/sample/ssl-client-mbedtls.c:173,1
    - Dst: mbedtls_net_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:179,1
    - Dst: mbedtls_ssl_config_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:180,1
    - Dst: mbedtls_x509_crt_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:181,1
    - Dst: mbedtls_ctr_drbg_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:182,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:184,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:185,1
    - Dst: mbedtls_entropy_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:187,1
    - Dst: mbedtls_ctr_drbg_seed
      Src: /src/libevent/sample/ssl-client-mbedtls.c:188,1
    - Dst: strlen
      Src: /src/libevent/sample/ssl-client-mbedtls.c:189,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:190,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:194,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:199,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:200,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/libevent/sample/ssl-client-mbedtls.c:202,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:205,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:210,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:215,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:216,1
    - Dst: mbedtls_net_connect
      Src: /src/libevent/sample/ssl-client-mbedtls.c:218,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:220,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:224,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:229,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:230,1
    - Dst: mbedtls_ssl_config_defaults
      Src: /src/libevent/sample/ssl-client-mbedtls.c:232,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:234,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:239,1
    - Dst: mbedtls_ssl_conf_authmode
      Src: /src/libevent/sample/ssl-client-mbedtls.c:243,1
    - Dst: mbedtls_ssl_conf_ca_chain
      Src: /src/libevent/sample/ssl-client-mbedtls.c:244,1
    - Dst: mbedtls_ssl_conf_rng
      Src: /src/libevent/sample/ssl-client-mbedtls.c:245,1
    - Dst: mbedtls_ssl_conf_dbg
      Src: /src/libevent/sample/ssl-client-mbedtls.c:246,1
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:248,1
    - Dst: mbedtls_ssl_set_hostname
      Src: /src/libevent/sample/ssl-client-mbedtls.c:250,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:251,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:255,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/sample/ssl-client-mbedtls.c:257,1
    - Dst: event_base_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:258,1
    - Dst: evdns_base_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:259,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/sample/ssl-client-mbedtls.c:260,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/sample/ssl-client-mbedtls.c:262,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:264,1
    - Dst: bufferevent_mbedtls_filter_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:265,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/ssl-client-mbedtls.c:268,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/ssl-client-mbedtls.c:270,1
    - Dst: event_base_loop
      Src: /src/libevent/sample/ssl-client-mbedtls.c:273,1
    - Dst: event_base_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:274,1
    - Dst: mbedtls_strerror
      Src: /src/libevent/sample/ssl-client-mbedtls.c:282,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:283,1
    - Dst: mbedtls_net_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:287,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:289,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:290,1
    - Dst: mbedtls_ctr_drbg_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:291,1
    - Dst: mbedtls_entropy_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:292,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:295,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:296,1
    - Dst: getchar
      Src: /src/libevent/sample/ssl-client-mbedtls.c:297,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 140
    functionDepth: 9
    functionLinenumber: 140
    functionLinenumberEnd: 301
    functionName: main
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 2
    functionsReached:
    - event_enable_debug_mode
    - mbedtls_entropy_free
    - MAKEWORD
    - mbedtls_ssl_conf_ca_chain
    - mbedtls_ssl_config_init
    - strlen
    - evdns_base_set_option
    - bufferevent_mbedtls_filter_new
    - mbedtls_ssl_conf_rng
    - mbedtls_ssl_conf_dbg
    - getchar
    - mbedtls_ctr_drbg_init
    - mbedtls_debug_set_threshold
    - fflush
    - bufferevent_enable
    - evutil_make_socket_nonblocking
    - mbedtls_x509_crt_free
    - bufferevent_mbedtls_dyncontext_new
    - WSAStartup
    - event_base_loop
    - event_base_new
    - mbedtls_ssl_config_defaults
    - mbedtls_net_init
    - mbedtls_entropy_init
    - bufferevent_socket_new
    - mbedtls_net_free
    - mbedtls_printf
    - mbedtls_ssl_set_hostname
    - bufferevent_setcb
    - evdns_base_new
    - mbedtls_strerror
    - mbedtls_net_connect
    - event_base_free
    - mbedtls_ssl_config_free
    - mbedtls_ctr_drbg_free
    - mbedtls_ctr_drbg_seed
    - mbedtls_x509_crt_parse
    - mbedtls_x509_crt_init
    - mbedtls_ssl_conf_authmode
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/sample/le-proxy.c:59,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:60,1
    - Dst: evbuffer_drain
      Src: /src/libevent/sample/le-proxy.c:62,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/le-proxy.c:65,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/sample/le-proxy.c:66,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:68,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:72,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/sample/le-proxy.c:74,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/le-proxy.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 78
    functionName: readcb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 3
    functionsReached:
    - bufferevent_disable
    - evbuffer_add_buffer
    - bufferevent_setcb
    - bufferevent_get_input
    - bufferevent_setwatermark
    - evbuffer_get_length
    - evbuffer_drain
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:87,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/sample/le-proxy.c:88,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/le-proxy.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: drained_writecb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - bufferevent_setwatermark
    - bufferevent_enable
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void drained_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/le-proxy.c:96,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:98,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: close_on_finished_writecb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void close_on_finished_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_openssl_error
      Src: /src/libevent/sample/le-proxy.c:111,1
    - Dst: ERR_reason_error_string
      Src: /src/libevent/sample/le-proxy.c:113,1
    - Dst: ERR_lib_error_string
      Src: /src/libevent/sample/le-proxy.c:115,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:117,1
    - Dst: ERR_func_error_string
      Src: /src/libevent/sample/le-proxy.c:121,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:122,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:127,1
    - Dst: readcb
      Src: /src/libevent/sample/le-proxy.c:132,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:134,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/le-proxy.c:135,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:139,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/le-proxy.c:142,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:146,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 151
    functionName: eventcb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 6
    functionsReached:
    - ERR_reason_error_string
    - fprintf
    - bufferevent_disable
    - bufferevent_setcb
    - ERR_lib_error_string
    - bufferevent_get_openssl_error
    - ERR_func_error_string
    - evbuffer_get_length
    - perror
    - bufferevent_free
    - readcb
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:156,1
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:157,1
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:158,1
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:159,1
    - Dst: exit
      Src: /src/libevent/sample/le-proxy.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: syntax
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - exit
    - fputs
    linkageType: ''
    returnType: void
    signature: void syntax(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/le-proxy.c:171,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/le-proxy.c:175,1
    - Dst: SSL_new
      Src: /src/libevent/sample/le-proxy.c:178,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/sample/le-proxy.c:179,1
    - Dst: assert
      Src: /src/libevent/sample/le-proxy.c:184,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/sample/le-proxy.c:186,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:188,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:189,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:190,1
    - Dst: SSL_new
      Src: /src/libevent/sample/le-proxy.c:196,1
    - Dst: bufferevent_openssl_filter_new
      Src: /src/libevent/sample/le-proxy.c:197,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:201,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:202,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:203,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:209,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:210,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/le-proxy.c:212,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/le-proxy.c:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - listener
    - fd
    - a
    - slen
    - p
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts:
    - condition: (b_in && b_out)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/libevent/sample/le-proxy.c
    constantsTouched: []
    func_position:
      end: 214
      start: 164
    functionDepth: 6
    functionLinenumber: 164
    functionLinenumberEnd: 214
    functionName: accept_cb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - bufferevent_openssl_filter_new
    - bufferevent_enable
    - bufferevent_openssl_socket_new
    - bufferevent_socket_new
    - SSL_new
    - assert
    - bufferevent_socket_connect
    - perror
    - bufferevent_free
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void accept_cb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *a, int slen, void *p)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/le-proxy.c:229,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/le-proxy.c:230,1
    - Dst: signal
      Src: /src/libevent/sample/le-proxy.c:233,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:234,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:240,1
    - Dst: strcmp
      Src: /src/libevent/sample/le-proxy.c:243,1
    - Dst: strcmp
      Src: /src/libevent/sample/le-proxy.c:245,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:248,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:254,1
    - Dst: memset
      Src: /src/libevent/sample/le-proxy.c:256,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/sample/le-proxy.c:258,1
    - Dst: atoi
      Src: /src/libevent/sample/le-proxy.c:260,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:263,1
    - Dst: htons
      Src: /src/libevent/sample/le-proxy.c:264,1
    - Dst: htonl
      Src: /src/libevent/sample/le-proxy.c:265,1
    - Dst: memset
      Src: /src/libevent/sample/le-proxy.c:270,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/sample/le-proxy.c:272,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:274,1
    - Dst: event_base_new
      Src: /src/libevent/sample/le-proxy.c:276,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:278,1
    - Dst: SSL_library_init
      Src: /src/libevent/sample/le-proxy.c:286,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/sample/le-proxy.c:287,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/sample/le-proxy.c:288,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/sample/le-proxy.c:289,1
    - Dst: RAND_poll
      Src: /src/libevent/sample/le-proxy.c:291,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:293,1
    - Dst: SSL_CTX_new
      Src: /src/libevent/sample/le-proxy.c:296,1
    - Dst: TLS_method
      Src: /src/libevent/sample/le-proxy.c:296,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/le-proxy.c:299,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:304,1
    - Dst: event_base_free
      Src: /src/libevent/sample/le-proxy.c:305,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/le-proxy.c:308,1
    - Dst: evconnlistener_free
      Src: /src/libevent/sample/le-proxy.c:310,1
    - Dst: event_base_free
      Src: /src/libevent/sample/le-proxy.c:311,1
    - Dst: WSACleanup
      Src: /src/libevent/sample/le-proxy.c:314,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 318
    functionName: main
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 2
    functionsReached:
    - SSL_library_init
    - atoi
    - event_base_dispatch
    - evconnlistener_free
    - MAKEWORD
    - htonl
    - TLS_method
    - ERR_load_crypto_strings
    - evconnlistener_new_bind
    - RAND_poll
    - WSAStartup
    - event_base_new
    - WSACleanup
    - SSL_load_error_strings
    - perror
    - SSL_CTX_new
    - memset
    - fprintf
    - OpenSSL_add_all_algorithms
    - evutil_parse_sockaddr_port
    - event_base_free
    - htons
    - syntax
    - signal
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/signal-test.c:36,1
    - Dst: event_get_signal
      Src: /src/libevent/sample/signal-test.c:36,1
    - Dst: event_del
      Src: /src/libevent/sample/signal-test.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/signal-test.c
    functionUses: 0
    functionsReached:
    - printf
    - event_del
    - event_get_signal
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/signal-test.c:54,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/signal-test.c:56,1
    - Dst: event_base_new
      Src: /src/libevent/sample/signal-test.c:60,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/signal-test.c:67,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/signal-test.c:67,1
    - Dst: event_add
      Src: /src/libevent/sample/signal-test.c:72,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/signal-test.c:74,1
    - Dst: event_free
      Src: /src/libevent/sample/signal-test.c:78,1
    - Dst: event_base_free
      Src: /src/libevent/sample/signal-test.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/libevent/sample/signal-test.c
    functionUses: 2
    functionsReached:
    - event_base_dispatch
    - WSAStartup
    - MAKEWORD
    - event_base_free
    - event_free
    - evsignal_new
    - event_add
    - event_base_new
    - event_self_cbarg
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/sample/hello-world.c:48,1
    - Dst: event_base_new
      Src: /src/libevent/sample/hello-world.c:51,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:53,1
    - Dst: htons
      Src: /src/libevent/sample/hello-world.c:58,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/hello-world.c:60,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:66,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/hello-world.c:70,1
    - Dst: event_add
      Src: /src/libevent/sample/hello-world.c:72,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:73,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/hello-world.c:77,1
    - Dst: evconnlistener_free
      Src: /src/libevent/sample/hello-world.c:79,1
    - Dst: event_free
      Src: /src/libevent/sample/hello-world.c:80,1
    - Dst: event_base_free
      Src: /src/libevent/sample/hello-world.c:81,1
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 2
    functionsReached:
    - printf
    - fprintf
    - event_base_dispatch
    - evconnlistener_free
    - evsignal_new
    - evconnlistener_new_bind
    - event_base_free
    - htons
    - event_free
    - WSAStartup
    - event_add
    - event_base_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/hello-world.c:94,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:96,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/hello-world.c:97,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/hello-world.c:100,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/hello-world.c:101,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/hello-world.c:102,1
    - Dst: bufferevent_write
      Src: /src/libevent/sample/hello-world.c:104,1
    - Dst: strlen
      Src: /src/libevent/sample/hello-world.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - user_data
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 87
    functionDepth: 8
    functionLinenumber: 87
    functionLinenumberEnd: 105
    functionName: listener_cb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - fprintf
    - bufferevent_disable
    - bufferevent_enable
    - bufferevent_socket_new
    - bufferevent_write
    - strlen
    - event_base_loopbreak
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void listener_cb(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *sa, int socklen, void *user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/hello-world.c:110,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/hello-world.c:111,1
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:112,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/hello-world.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - user_data
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 6
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: conn_writecb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - printf
    - bufferevent_free
    - evbuffer_get_length
    - bufferevent_get_output
    linkageType: ''
    returnType: void
    signature: void conn_writecb(struct bufferevent *bev, void *user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:121,1
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:123,1
    - Dst: strerror
      Src: /src/libevent/sample/hello-world.c:124,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/hello-world.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bev
    - events
    - user_data
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 6
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: conn_eventcb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - printf
    - strerror
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void conn_eventcb(struct bufferevent *bev, short events, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:137,1
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/hello-world.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - user_data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - printf
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t sig, short events, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: CHECK_FMT
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FMT(a,b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/sample/becat.c:104,1
    - Dst: vfprintf
      Src: /src/libevent/sample/becat.c:105,1
    - Dst: va_end
      Src: /src/libevent/sample/becat.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: info
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 40
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void info(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/sample/becat.c:111,1
    - Dst: vfprintf
      Src: /src/libevent/sample/becat.c:112,1
    - Dst: va_end
      Src: /src/libevent/sample/becat.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: error
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 288
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void error(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/becat.c:124,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:125,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/becat.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bevp
    argTypes:
    - struct bufferevent**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: be_free
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - bufferevent_getfd
    - info
    linkageType: ''
    returnType: void
    signature: void be_free(struct bufferevent **bevp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/sample/becat.c:142,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/sample/becat.c:145,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/sample/becat.c:147,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/sample/becat.c:149,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/becat.c:151,1
    - Dst: bufferevent_set_max_single_read
      Src: /src/libevent/sample/becat.c:154,1
    - Dst: SSL_free
      Src: /src/libevent/sample/becat.c:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - base
    - fd
    argTypes:
    - struct context*
    - struct event_base*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 130
    functionDepth: 6
    functionLinenumber: 130
    functionLinenumberEnd: 162
    functionName: be_new
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - SSL_use_certificate
    - bufferevent_openssl_socket_new
    - bufferevent_socket_new
    - SSL_new
    - SSL_free
    - SSL_use_PrivateKey
    - bufferevent_set_max_single_read
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      be_new(struct context *ctx, struct event_base *base, evutil_socket_t fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/libevent/sample/becat.c:167,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/sample/becat.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - o
    argTypes:
    - struct bufferevent*
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: be_set_timeout
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - info
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: int
    signature: int be_set_timeout(struct bufferevent *bev, const struct options *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/libevent/sample/becat.c:175,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/sample/becat.c:176,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/sample/becat.c:177,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/sample/becat.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: ssl_init
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - SSL_library_init
    - ERR_load_crypto_strings
    - SSL_load_error_strings
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void ssl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: ssl_init
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/libevent/sample/becat.c:186,1
    - Dst: EVP_PKEY_free
      Src: /src/libevent/sample/becat.c:187,1
    - Dst: X509_free
      Src: /src/libevent/sample/becat.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: ssl_ctx_free
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - X509_free
    - SSL_CTX_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void ssl_ctx_free(struct ssl_context *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RSA_gen
      Src: /src/libevent/sample/becat.c:194,1
    - Dst: EVP_PKEY_new
      Src: /src/libevent/sample/becat.c:200,1
    - Dst: BN_new
      Src: /src/libevent/sample/becat.c:202,1
    - Dst: BN_set_word
      Src: /src/libevent/sample/becat.c:203,1
    - Dst: RSA_new
      Src: /src/libevent/sample/becat.c:206,1
    - Dst: RSA_generate_key_ex
      Src: /src/libevent/sample/becat.c:207,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/libevent/sample/becat.c:209,1
    - Dst: BN_free
      Src: /src/libevent/sample/becat.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 216
    functionName: ssl_load_key
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - RSA_new
    - EVP_RSA_gen
    - BN_new
    - EVP_PKEY_assign_RSA
    - EVP_PKEY_new
    - RSA_generate_key_ex
    - BN_free
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: int ssl_load_key(struct ssl_context *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/libevent/sample/becat.c:221,1
    - Dst: ASN1_INTEGER_set
      Src: /src/libevent/sample/becat.c:223,1
    - Dst: X509_get_serialNumber
      Src: /src/libevent/sample/becat.c:223,1
    - Dst: X509_gmtime_adj
      Src: /src/libevent/sample/becat.c:225,1
    - Dst: X509_getm_notBefore
      Src: /src/libevent/sample/becat.c:225,1
    - Dst: X509_gmtime_adj
      Src: /src/libevent/sample/becat.c:227,1
    - Dst: X509_getm_notAfter
      Src: /src/libevent/sample/becat.c:227,1
    - Dst: time
      Src: /src/libevent/sample/becat.c:228,1
    - Dst: X509_set_pubkey
      Src: /src/libevent/sample/becat.c:230,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/becat.c:232,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/libevent/sample/becat.c:233,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/libevent/sample/becat.c:235,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/libevent/sample/becat.c:237,1
    - Dst: X509_set_issuer_name
      Src: /src/libevent/sample/becat.c:239,1
    - Dst: X509_sign
      Src: /src/libevent/sample/becat.c:241,1
    - Dst: EVP_sha1
      Src: /src/libevent/sample/becat.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 244
    functionName: ssl_load_cert
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - X509_new
    - X509_NAME_add_entry_by_txt
    - X509_get_serialNumber
    - time
    - X509_set_pubkey
    - X509_set_issuer_name
    - X509_getm_notBefore
    - X509_get_subject_name
    - EVP_sha1
    - ASN1_INTEGER_set
    - X509_getm_notAfter
    - X509_sign
    - X509_gmtime_adj
    linkageType: ''
    returnType: int
    signature: int ssl_load_cert(struct ssl_context *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_init
      Src: /src/libevent/sample/becat.c:249,1
    - Dst: TLS_method
      Src: /src/libevent/sample/becat.c:251,1
    - Dst: SSL_CTX_new
      Src: /src/libevent/sample/becat.c:254,1
    - Dst: ssl_load_key
      Src: /src/libevent/sample/becat.c:256,1
    - Dst: ssl_load_cert
      Src: /src/libevent/sample/becat.c:258,1
    - Dst: ssl_ctx_free
      Src: /src/libevent/sample/becat.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: ssl_ctx_init
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - ssl_ctx_free
    - ssl_init
    - TLS_method
    - ssl_load_cert
    - ssl_load_key
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: int ssl_ctx_init(struct ssl_context *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:270,1
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 288
    functionName: print_usage
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_usage(FILE *out, const char *name)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/becat.c:294,1
    - Dst: getopt
      Src: /src/libevent/sample/becat.c:298,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:300,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:301,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:302,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:304,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:305,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:306,1
    - Dst: print_usage
      Src: /src/libevent/sample/becat.c:322,1
    - Dst: exit
      Src: /src/libevent/sample/becat.c:323,1
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:325,1
    - Dst: exit
      Src: /src/libevent/sample/becat.c:326,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:331,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:335,1
    - Dst: print_usage
      Src: /src/libevent/sample/becat.c:339,1
    - Dst: exit
      Src: /src/libevent/sample/becat.c:340,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:344,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:346,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 349
    functionName: parse_opts
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - atoi
    - fprintf
    - print_usage
    - getopt
    - exit
    - strdup
    - memset
    linkageType: ''
    returnType: struct options
    signature: struct options parse_opts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/becat.c:354,1
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:355,1
    - Dst: evutil_strsignal
      Src: /src/libevent/sample/becat.c:356,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/sample/becat.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: do_term
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - EV_SOCK_ARG
    - event_base_loopexit
    - evutil_strsignal
    - fprintf
    linkageType: ''
    returnType: void
    signature: void do_term(evutil_socket_t sig, short events, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/becat.c:368,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/becat.c:372,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/sample/becat.c:373,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/sample/becat.c:379,1
    - Dst: memcpy
      Src: /src/libevent/sample/becat.c:383,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/sample/becat.c:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - ss
    - address
    - port
    argTypes:
    - struct sockaddr_storage*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 359
    functionDepth: 7
    functionLinenumber: 359
    functionLinenumberEnd: 388
    functionName: make_address
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - evutil_freeaddrinfo
    - evutil_getaddrinfo
    - evutil_snprintf
    - memset
    - memcpy
    linkageType: ''
    returnType: ev_socklen_t
    signature: ev_socklen_t make_address(struct sockaddr_storage *ss, const char *address,
      ev_uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_openssl_error
      Src: /src/libevent/sample/becat.c:393,1
    - Dst: ERR_reason_error_string
      Src: /src/libevent/sample/becat.c:394,1
    - Dst: ERR_lib_error_string
      Src: /src/libevent/sample/becat.c:395,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:397,1
    - Dst: ERR_func_error_string
      Src: /src/libevent/sample/becat.c:399,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: be_ssl_errors
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    - ERR_lib_error_string
    - error
    - bufferevent_get_openssl_error
    - ERR_func_error_string
    linkageType: ''
    returnType: void
    signature: void be_ssl_errors(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_base
      Src: /src/libevent/sample/becat.c:406,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/becat.c:407,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:410,1
    - Dst: be_ssl_errors
      Src: /src/libevent/sample/becat.c:414,1
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/becat.c:418,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:420,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - bev
    - what
    - ssl
    - stop
    argTypes:
    - struct bufferevent*
    - short
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 404
    functionDepth: 7
    functionLinenumber: 404
    functionLinenumberEnd: 423
    functionName: event_cb_
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - be_free
    - info
    - event_base_loopexit
    - bufferevent_get_base
    - bufferevent_getfd
    - error
    - be_ssl_errors
    linkageType: ''
    returnType: int
    signature: int event_cb_(struct bufferevent *bev, short what, int ssl, int stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/sample/becat.c:428,1
    - Dst: evbuffer_write
      Src: /src/libevent/sample/becat.c:429,1
    - Dst: fileno
      Src: /src/libevent/sample/becat.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: read_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - fileno
    - evbuffer_write
    linkageType: ''
    returnType: void
    signature: void read_cb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_write_buffer
      Src: /src/libevent/sample/becat.c:434,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/sample/becat.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 7
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: write_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - bufferevent_get_input
    - bufferevent_write_buffer
    linkageType: ''
    returnType: void
    signature: void write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/sample/becat.c:439,1
    - Dst: event_cb_
      Src: /src/libevent/sample/becat.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 8
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: server_event_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_cb_
    linkageType: ''
    returnType: void
    signature: void server_event_cb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_base
      Src: /src/libevent/sample/becat.c:452,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/sample/becat.c:455,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:457,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/sample/becat.c:458,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/sample/becat.c:459,1
    - Dst: be_new
      Src: /src/libevent/sample/becat.c:462,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:464,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/becat.c:468,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:469,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:470,1
    - Dst: be_set_timeout
      Src: /src/libevent/sample/becat.c:473,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:474,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/sample/becat.c:479,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:482,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:483,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:490,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 445
    functionDepth: 7
    functionLinenumber: 445
    functionLinenumberEnd: 491
    functionName: accept_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - evutil_format_sockaddr_port_
    - evutil_set_tcp_keepalive
    - be_free
    - info
    - bufferevent_enable
    - error
    - EVUTIL_ASSERT
    - be_new
    - be_set_timeout
    - evconnlistener_get_base
    - evconnlistener_disable
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void accept_cb(struct evconnlistener *listener, evutil_socket_t fd,\n\tstruct
      sockaddr *sa, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_cb_
      Src: /src/libevent/sample/becat.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 8
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: client_event_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - event_cb_
    linkageType: ''
    returnType: void
    signature: void client_event_cb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_cb_
      Src: /src/libevent/sample/becat.c:504,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 8
    functionLinenumber: 501
    functionLinenumberEnd: 509
    functionName: in_event_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - be_free
    - event_cb_
    linkageType: ''
    returnType: void
    signature: void in_event_cb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_trigger
      Src: /src/libevent/sample/becat.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: trigger_bev_write_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - bufferevent_trigger
    linkageType: ''
    returnType: void
    signature: void trigger_bev_write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: parse_opts
      Src: /src/libevent/sample/becat.c:531,1
    - Dst: memset
      Src: /src/libevent/sample/becat.c:534,1
    - Dst: getenv
      Src: /src/libevent/sample/becat.c:537,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/sample/becat.c:538,1
    - Dst: event_base_new
      Src: /src/libevent/sample/becat.c:540,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/becat.c:544,1
    - Dst: event_add
      Src: /src/libevent/sample/becat.c:547,1
    - Dst: MAKEWORD
      Src: /src/libevent/sample/becat.c:554,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/becat.c:555,1
    - Dst: signal
      Src: /src/libevent/sample/becat.c:558,1
    - Dst: ssl_ctx_init
      Src: /src/libevent/sample/becat.c:562,1
    - Dst: make_address
      Src: /src/libevent/sample/becat.c:571,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:573,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:577,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/sample/becat.c:578,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/becat.c:580,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:582,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/sample/becat.c:587,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/sample/becat.c:588,1
    - Dst: make_address
      Src: /src/libevent/sample/becat.c:593,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:595,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:599,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/sample/becat.c:600,1
    - Dst: be_new
      Src: /src/libevent/sample/becat.c:602,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:604,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/becat.c:608,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:609,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:610,1
    - Dst: be_set_timeout
      Src: /src/libevent/sample/becat.c:613,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:614,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/sample/becat.c:618,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:619,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/becat.c:623,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/sample/becat.c:624,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/becat.c:632,1
    - Dst: bufferevent_set_max_single_read
      Src: /src/libevent/sample/becat.c:634,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:638,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/becat.c:641,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:642,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:643,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/becat.c:646,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/becat.c:648,1
    - Dst: event_free
      Src: /src/libevent/sample/becat.c:657,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:658,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:659,1
    - Dst: evconnlistener_free
      Src: /src/libevent/sample/becat.c:661,1
    - Dst: event_base_free
      Src: /src/libevent/sample/becat.c:663,1
    - Dst: free
      Src: /src/libevent/sample/becat.c:665,1
    - Dst: free
      Src: /src/libevent/sample/becat.c:666,1
    - Dst: ssl_ctx_free
      Src: /src/libevent/sample/becat.c:668,1
    - Dst: WSACleanup
      Src: /src/libevent/sample/becat.c:671,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 125
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 519
    functionDepth: 8
    functionLinenumber: 519
    functionLinenumberEnd: 675
    functionName: main
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 2
    functionsReached:
    - event_base_dispatch
    - info
    - evconnlistener_free
    - MAKEWORD
    - error
    - ssl_ctx_init
    - event_free
    - be_new
    - bufferevent_set_max_single_read
    - be_free
    - make_address
    - event_enable_debug_logging
    - evconnlistener_new_bind
    - bufferevent_enable
    - parse_opts
    - be_set_timeout
    - WSAStartup
    - event_add
    - event_base_new
    - evutil_set_tcp_keepalive
    - WSACleanup
    - getenv
    - bufferevent_getfd
    - bufferevent_socket_new
    - ssl_ctx_free
    - evconnlistener_get_fd
    - bufferevent_socket_connect
    - memset
    - bufferevent_setcb
    - evutil_format_sockaddr_port_
    - free
    - bufferevent_disable
    - event_base_free
    - signal
    - evsignal_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: log_d
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_d(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/sample/ws-chat-server.c:69,1
    - Dst: evws_send_text
      Src: /src/libevent/sample/ws-chat-server.c:70,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: broadcast_msg
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - log_d
    - evws_send_text
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void broadcast_msg(char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:83,1
    - Dst: memcmp
      Src: /src/libevent/sample/ws-chat-server.c:84,1
    - Dst: evws_close
      Src: /src/libevent/sample/ws-chat-server.c:85,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:86,1
    - Dst: strncmp
      Src: /src/libevent/sample/ws-chat-server.c:87,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:91,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:93,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:96,1
    - Dst: broadcast_msg
      Src: /src/libevent/sample/ws-chat-server.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - evws
    - type
    - data
    - len
    - arg
    argTypes:
    - struct evws_connection*
    - int
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 100
    functionName: on_msg_cb
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - broadcast_msg
    - strncmp
    - evws_close
    - snprintf
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void on_msg_cb(struct evws_connection *evws, int type, const unsigned
      char *data,\n\tsize_t len, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:106,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/sample/ws-chat-server.c:107,1
    - Dst: free
      Src: /src/libevent/sample/ws-chat-server.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - evws
    - arg
    argTypes:
    - struct evws_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: on_close_cb
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - log_d
    - free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void on_close_cb(struct evws_connection *evws, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libevent/sample/ws-chat-server.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: nice_addr
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      nice_addr(const char *addr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/libevent/sample/ws-chat-server.c:129,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/ws-chat-server.c:130,1
    - Dst: ntohs
      Src: /src/libevent/sample/ws-chat-server.c:133,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/ws-chat-server.c:134,1
    - Dst: nice_addr
      Src: /src/libevent/sample/ws-chat-server.c:135,1
    - Dst: strlen
      Src: /src/libevent/sample/ws-chat-server.c:137,1
    - Dst: memmove
      Src: /src/libevent/sample/ws-chat-server.c:138,1
    - Dst: strlen
      Src: /src/libevent/sample/ws-chat-server.c:142,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - sa
    - addr
    - len
    argTypes:
    - struct sockaddr*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 144
    functionName: addr2str
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - memmove
    - nice_addr
    - snprintf
    - evutil_inet_ntop
    - strlen
    - ntohs
    linkageType: ''
    returnType: void
    signature: void addr2str(struct sockaddr *sa, char *addr, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/sample/ws-chat-server.c:155,1
    - Dst: evws_new_session
      Src: /src/libevent/sample/ws-chat-server.c:157,1
    - Dst: free
      Src: /src/libevent/sample/ws-chat-server.c:159,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:160,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/ws-chat-server.c:164,1
    - Dst: evws_connection_get_bufferevent
      Src: /src/libevent/sample/ws-chat-server.c:164,1
    - Dst: getpeername
      Src: /src/libevent/sample/ws-chat-server.c:167,1
    - Dst: addr2str
      Src: /src/libevent/sample/ws-chat-server.c:168,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:170,1
    - Dst: evws_connection_set_closecb
      Src: /src/libevent/sample/ws-chat-server.c:172,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/sample/ws-chat-server.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: on_ws
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - log_d
    - free
    - bufferevent_getfd
    - evws_connection_get_bufferevent
    - evws_connection_set_closecb
    - TAILQ_INSERT_TAIL
    - evws_new_session
    - getpeername
    - addr2str
    - calloc
    linkageType: ''
    returnType: void
    signature: void on_ws(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/ws-chat-server.c:183,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/sample/ws-chat-server.c:184,1
    - Dst: open
      Src: /src/libevent/sample/ws-chat-server.c:185,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:186,1
    - Dst: fstat
      Src: /src/libevent/sample/ws-chat-server.c:190,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:193,1
    - Dst: evbuffer_new
      Src: /src/libevent/sample/ws-chat-server.c:198,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/sample/ws-chat-server.c:199,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/sample/ws-chat-server.c:200,1
    - Dst: evbuffer_free
      Src: /src/libevent/sample/ws-chat-server.c:201,1
    - Dst: evhttp_send_error
      Src: /src/libevent/sample/ws-chat-server.c:205,1
    - Dst: close
      Src: /src/libevent/sample/ws-chat-server.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 176
    functionDepth: 7
    functionLinenumber: 176
    functionLinenumberEnd: 208
    functionName: on_html
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - evbuffer_new
    - evbuffer_add_file
    - evhttp_send_reply
    - evhttp_add_header
    - open
    - evbuffer_free
    - close
    - perror
    - evhttp_send_error
    - fstat
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void on_html(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/ws-chat-server.c:213,1
    - Dst: evutil_strsignal
      Src: /src/libevent/sample/ws-chat-server.c:213,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/sample/ws-chat-server.c:213,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/ws-chat-server.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - printf
    - EV_SOCK_ARG
    - evutil_strsignal
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/sample/ws-chat-server.c:224,1
    - Dst: event_base_new
      Src: /src/libevent/sample/ws-chat-server.c:226,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/ws-chat-server.c:228,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:230,1
    - Dst: event_add
      Src: /src/libevent/sample/ws-chat-server.c:233,1
    - Dst: evhttp_new
      Src: /src/libevent/sample/ws-chat-server.c:235,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:237,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/sample/ws-chat-server.c:240,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/sample/ws-chat-server.c:242,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/sample/ws-chat-server.c:243,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:245,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/ws-chat-server.c:246,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:248,1
    - Dst: evhttp_get_connection_count
      Src: /src/libevent/sample/ws-chat-server.c:248,1
    - Dst: evhttp_free
      Src: /src/libevent/sample/ws-chat-server.c:249,1
    - Dst: event_free
      Src: /src/libevent/sample/ws-chat-server.c:251,1
    - Dst: event_base_free
      Src: /src/libevent/sample/ws-chat-server.c:252,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/sample/ws-chat-server.c:253,1
    - Dst: event_free
      Src: /src/libevent/sample/ws-chat-server.c:259,1
    - Dst: event_base_free
      Src: /src/libevent/sample/ws-chat-server.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 265
    functionName: main
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 2
    functionsReached:
    - evhttp_bind_socket_with_handle
    - evhttp_set_cb
    - log_d
    - event_base_dispatch
    - evsignal_new
    - evhttp_new
    - event_base_free
    - evhttp_free
    - TAILQ_INIT
    - event_free
    - libevent_global_shutdown
    - perror
    - event_add
    - evhttp_get_connection_count
    - event_base_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/time-test.c:49,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/time-test.c:50,1
    - Dst: printf
      Src: /src/libevent/sample/time-test.c:54,1
    - Dst: evutil_timerclear
      Src: /src/libevent/sample/time-test.c:60,1
    - Dst: event_add
      Src: /src/libevent/sample/time-test.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: timeout_cb
    functionSourceFile: /src/libevent/sample/time-test.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - printf
    - evutil_timersub
    - evutil_timerclear
    - event_add
    linkageType: ''
    returnType: void
    signature: void timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/time-test.c:71,1
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/time-test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - user_data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/time-test.c
    functionUses: 0
    functionsReached:
    - printf
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t sig, short events, void *user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/time-test.c:88,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/time-test.c:90,1
    - Dst: strcmp
      Src: /src/libevent/sample/time-test.c:93,1
    - Dst: event_base_new
      Src: /src/libevent/sample/time-test.c:102,1
    - Dst: event_new
      Src: /src/libevent/sample/time-test.c:105,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/time-test.c:105,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/time-test.c:106,1
    - Dst: fprintf
      Src: /src/libevent/sample/time-test.c:108,1
    - Dst: fprintf
      Src: /src/libevent/sample/time-test.c:112,1
    - Dst: evutil_timerclear
      Src: /src/libevent/sample/time-test.c:115,1
    - Dst: event_add
      Src: /src/libevent/sample/time-test.c:117,1
    - Dst: event_add
      Src: /src/libevent/sample/time-test.c:118,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/time-test.c:120,1
    - Dst: setbuf
      Src: /src/libevent/sample/time-test.c:122,1
    - Dst: setbuf
      Src: /src/libevent/sample/time-test.c:123,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/time-test.c:125,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:127,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:128,1
    - Dst: event_base_free
      Src: /src/libevent/sample/time-test.c:129,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:134,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:136,1
    - Dst: event_base_free
      Src: /src/libevent/sample/time-test.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 140
    functionName: main
    functionSourceFile: /src/libevent/sample/time-test.c
    functionUses: 2
    functionsReached:
    - evutil_gettimeofday
    - fprintf
    - event_base_dispatch
    - evsignal_new
    - event_self_cbarg
    - MAKEWORD
    - event_base_free
    - setbuf
    - event_free
    - evutil_timerclear
    - WSAStartup
    - event_add
    - event_base_new
    - event_new
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/libevent/sample/openssl_hostname_validation.c:71,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:71,1
    - Dst: X509_NAME_get_entry
      Src: /src/libevent/sample/openssl_hostname_validation.c:77,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:77,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/libevent/sample/openssl_hostname_validation.c:83,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/libevent/sample/openssl_hostname_validation.c:87,1
    - Dst: ASN1_STRING_length
      Src: /src/libevent/sample/openssl_hostname_validation.c:90,1
    - Dst: strlen
      Src: /src/libevent/sample/openssl_hostname_validation.c:90,1
    - Dst: Curl_cert_hostcheck
      Src: /src/libevent/sample/openssl_hostname_validation.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 101
    functionName: matches_common_name
    functionSourceFile: /src/libevent/sample/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - X509_NAME_ENTRY_get_data
    - X509_get_subject_name
    - Curl_cert_hostcheck
    - ASN1_STRING_get0_data
    - strlen
    - ASN1_STRING_length
    - X509_NAME_get_entry
    - X509_NAME_get_index_by_NID
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult matches_common_name(const char *hostname,
      const X509 *server_cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/libevent/sample/openssl_hostname_validation.c:116,1
    - Dst: X509_get_ext_d2i
      Src: /src/libevent/sample/openssl_hostname_validation.c:119,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/libevent/sample/openssl_hostname_validation.c:123,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/libevent/sample/openssl_hostname_validation.c:127,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/libevent/sample/openssl_hostname_validation.c:131,1
    - Dst: ASN1_STRING_length
      Src: /src/libevent/sample/openssl_hostname_validation.c:134,1
    - Dst: strlen
      Src: /src/libevent/sample/openssl_hostname_validation.c:134,1
    - Dst: Curl_cert_hostcheck
      Src: /src/libevent/sample/openssl_hostname_validation.c:139,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/libevent/sample/openssl_hostname_validation.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 150
    functionName: matches_subject_alternative_name
    functionSourceFile: /src/libevent/sample/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_value
    - Curl_cert_hostcheck
    - ASN1_STRING_get0_data
    - strlen
    - ASN1_STRING_length
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_pop_free
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult matches_subject_alternative_name(const char
      *hostname, const X509 *server_cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: matches_subject_alternative_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:171,1
    - Dst: matches_common_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: validate_hostname
    functionSourceFile: /src/libevent/sample/openssl_hostname_validation.c
    functionUses: 1
    functionsReached:
    - matches_common_name
    - matches_subject_alternative_name
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult validate_hostname(const char *hostname, const
      X509 *server_cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: EVBUFFER_LENGTH
    functionSourceFile: /src/libevent/include/event2/buffer_compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: EVBUFFER_DATA
    functionSourceFile: /src/libevent/include/event2/buffer_compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_DATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/bufferevent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bufferevent
    signature: struct bufferevent EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ev
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: evtimer_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_set(ev, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ev
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: evsignal_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_set(ev, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: timeout_add
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ev
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: timeout_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_set(ev, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: timeout_del
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: timeout_pending
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: timeout_initialized
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: signal_add
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ev
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: signal_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_set(ev, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: signal_del
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: signal_pending
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: signal_initialized
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: EVENT_FD
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_FD(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: EVENT_SIGNAL
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_SIGNAL(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_monotonic_timer
    signature: struct evutil_monotonic_timer EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 496
    functionName: EVUTIL_CLOSESOCKET
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_CLOSESOCKET(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: EVUTIL_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SOCKET_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: EVUTIL_SET_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SET_SOCKET_ERROR(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 553
    functionName: EVUTIL_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SOCKET_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: EVUTIL_SET_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SET_SOCKET_ERROR(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 557
    functionName: evutil_socket_geterror
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_geterror(sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: evutil_socket_error_to_string
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_error_to_string(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 563
    functionName: EVUTIL_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SOCKET_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: EVUTIL_SET_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SET_SOCKET_ERROR(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 566
    functionName: evutil_socket_geterror
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_geterror(sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 567
    functionName: evutil_socket_error_to_string
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_error_to_string(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 581
    functionName: evutil_timeradd
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timeradd(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 582
    functionName: evutil_timersub
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timersub(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: evutil_timeradd
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timeradd(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 601
    functionName: evutil_timersub
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timersub(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 605
    functionName: evutil_timerclear
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerclear(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 607
    functionName: evutil_timerclear
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerclear(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 616
    functionName: evutil_timercmp
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timercmp(tvp, uvp, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 619
    functionName: evutil_timerisset
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerisset(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: evutil_timerisset
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerisset(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 626
    functionName: evutil_offsetof
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_offsetof(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: evutil_offsetof
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_offsetof(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tv
    - ','
    - tz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 638
    functionName: evutil_gettimeofday
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_gettimeofday(tv, tz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: EVBUFFER_INPUT
    functionSourceFile: /src/libevent/include/event2/bufferevent_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_INPUT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: EVBUFFER_OUTPUT
    functionSourceFile: /src/libevent/include/event2/bufferevent_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_OUTPUT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/include/event2/rpc_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/include/event2/event_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: TAILQ_HEAD
    functionSourceFile: /src/libevent/include/event2/event_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: LIST_ENTRY
    functionSourceFile: /src/libevent/include/event2/event_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: EVTAG_HAS
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_HAS(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: EVTAG_ASSIGN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ASSIGN(msg, member, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - value
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: EVTAG_ASSIGN_WITH_LEN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ASSIGN_WITH_LEN(msg, member, value, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - pvalue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: EVTAG_GET
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_GET(msg, member, pvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - pvalue
    - ','
    - plen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: EVTAG_GET_WITH_LEN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_GET_WITH_LEN(msg, member, pvalue, plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: EVTAG_ARRAY_ADD_VALUE
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_ADD_VALUE(msg, member, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: EVTAG_ARRAY_ADD
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_ADD(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - offset
    - ','
    - pvalue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: EVTAG_ARRAY_GET
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_GET(msg, member, offset, pvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: EVTAG_ARRAY_LEN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_LEN(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rpcname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: EVRPC_STRUCT
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_STRUCT(rpcname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rpcname
    - ','
    - reqstruct
    - ','
    - rplystruct
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 191
    functionName: EVRPC_HEADER
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_HEADER(rpcname, reqstruct, rplystruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - rpcname
    - ','
    - reqstruct
    - ','
    - rplystruct
    - ','
    - pool
    - ','
    - request
    - ','
    - reply
    - ','
    - cb
    - ','
    - cbarg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: EVRPC_MAKE_CTX
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "EVRPC_MAKE_CTX(rpcname, reqstruct, rplystruct, \\\n    pool, request,
      reply, cb, cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rpcname
    - ','
    - reqstruct
    - ','
    - rplystruct
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 253
    functionName: EVRPC_GENERATE
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_GENERATE(rpcname, reqstruct, rplystruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rpc_req
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: EVRPC_REQUEST_HTTP
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_REQUEST_HTTP(rpc_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rpc_req
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: EVRPC_REQUEST_DONE
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_REQUEST_DONE(rpc_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - base
    - ','
    - name
    - ','
    - request
    - ','
    - reply
    - ','
    - callback
    - ','
    - cbarg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: EVRPC_REGISTER
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_REGISTER(base, name, request, reply, callback, cbarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: EVRPC_UNREGISTER
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_UNREGISTER(base, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - pool
    - ','
    - request
    - ','
    - reply
    - ','
    - cb
    - ','
    - cbarg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: EVRPC_MAKE_REQUEST
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_MAKE_REQUEST(name, pool, request, reply, cb, cbarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: struct event_base EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event
    signature: struct event EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_config
    signature: struct event_config EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ev
    - ','
    - b
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: evtimer_assign
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_assign(ev, b, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1001
    functionName: evtimer_new
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_new(b, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1002
    functionName: evtimer_add
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1003
    functionName: evtimer_del
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1004
    functionName: evtimer_pending
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1005
    functionName: evtimer_initialized
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1014
    functionName: evsignal_add
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ev
    - ','
    - b
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1016
    functionName: evsignal_assign
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_assign(ev, b, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1018
    functionName: evsignal_new
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_new(b, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1019
    functionName: evsignal_del
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1020
    functionName: evsignal_pending
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1021
    functionName: evsignal_initialized
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1031
    functionName: evuser_new
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_new(b, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1032
    functionName: evuser_del
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1033
    functionName: evuser_pending
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1034
    functionName: evuser_initialized
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: evuser_trigger
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_trigger(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1377
    functionName: event_get_signal
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_get_signal(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: EVTAG_ASSIGN
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ASSIGN(msg, member, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: EVTAG_GET
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_GET(msg, member, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: EVTAG_ADD
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ADD(msg, member, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: EVTAG_LEN
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_LEN(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - evbuf
    - ','
    - number
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: encode_int
    functionSourceFile: /src/libevent/include/event2/tag_compat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: encode_int(evbuf, number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - evbuf
    - ','
    - number
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: encode_int64
    functionSourceFile: /src/libevent/include/event2/tag_compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: encode_int64(evbuf, number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/include/event2/keyvalq_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: TAILQ_HEAD
    functionSourceFile: /src/libevent/include/event2/keyvalq_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: struct evbuffer EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __P
    functionSourceFile: /src/libevent/WIN32-Code/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __P(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: _DIAGASSERT
    functionSourceFile: /src/libevent/WIN32-Code/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DIAGASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __P
    functionSourceFile: /src/libevent/WIN32-Code/getopt_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __P(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: _DIAGASSERT
    functionSourceFile: /src/libevent/WIN32-Code/getopt_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DIAGASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: SPLAY_INITIALIZER
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: SPLAY_INIT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: SPLAY_ENTRY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: SPLAY_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: SPLAY_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SPLAY_ROOT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SPLAY_EMPTY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: SPLAY_ROTATE_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_RIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: SPLAY_ROTATE_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_LEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: SPLAY_LINKLEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKLEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: SPLAY_LINKRIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKRIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - head
    - ','
    - node
    - ','
    - left
    - ','
    - right
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: SPLAY_ASSEMBLE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ASSEMBLE(head, node, left, right, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: SPLAY_PROTOTYPE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_PROTOTYPE(name, type, field, cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_EMPTY
      Src: /src/libevent/WIN32-Code/tree.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: _SPLAY_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_EMPTY
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:136,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:137,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:138,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: _SPLAY_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_RIGHT
    - SPLAY_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_NEXT(struct name *head,
      struct type *elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _SPLAY_MIN_MAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_ROOT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_MIN_MAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 239
    functionName: SPLAY_GENERATE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_GENERATE(name, type, field, cmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:244,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:244,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:249,1
    - Dst: SPLAY_ROTATE_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:253,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:254,1
    - Dst: SPLAY_LINKLEFT
      Src: /src/libevent/WIN32-Code/tree.h:257,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:259,1
    - Dst: SPLAY_ROTATE_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:263,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:264,1
    - Dst: SPLAY_LINKRIGHT
      Src: /src/libevent/WIN32-Code/tree.h:267,1
    - Dst: SPLAY_ASSEMBLE
      Src: /src/libevent/WIN32-Code/tree.h:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - head
    - __comp
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: _SPLAY_MINMAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_ASSEMBLE
    - SPLAY_LINKRIGHT
    - SPLAY_RIGHT
    - SPLAY_LINKLEFT
    - SPLAY_ROTATE_RIGHT
    - SPLAY_ROTATE_LEFT
    - SPLAY_LEFT
    linkageType: ''
    returnType: void
    signature: void _SPLAY_MINMAX(struct name *head, int __comp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: SPLAY_INSERT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: SPLAY_REMOVE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: SPLAY_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: SPLAY_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: SPLAY_MIN
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: SPLAY_MAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: SPLAY_FOREACH
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: RB_INITIALIZER
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: RB_INIT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: RB_ENTRY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: RB_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: RB_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: RB_PARENT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PARENT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: RB_COLOR
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_COLOR(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: RB_ROOT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: RB_EMPTY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - parent
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: RB_SET
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET(elm, parent, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - black
    - ','
    - red
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: RB_SET_BLACKRED
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET_BLACKRED(black, red, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 354
    functionName: RB_ROTATE_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_LEFT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 374
    functionName: RB_ROTATE_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_RIGHT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 386
    functionName: RB_PROTOTYPE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PROTOTYPE(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 577
    functionName: RB_GENERATE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_GENERATE(name, type, field, cmp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:584,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:589,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:591,1
    - Dst: RB_SET
      Src: /src/libevent/WIN32-Code/tree.h:595,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:598,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:600,1
    - Dst: RB_AUGMENT
      Src: /src/libevent/WIN32-Code/tree.h:601,1
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 606
    functionName: _RB_INSERT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_AUGMENT
    - RB_RIGHT
    - RB_LEFT
    - RB_ROOT
    - RB_SET
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_INSERT(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:612,1
    - Dst: cmp
      Src: /src/libevent/WIN32-Code/tree.h:615,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:617,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: _RB_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_LEFT
    - RB_ROOT
    - cmp
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:629,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:630,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:631,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:632,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:634,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:636,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:638,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:640,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - elm
    argTypes:
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 645
    functionName: _RB_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_PARENT
    - RB_RIGHT
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_NEXT(struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:650,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:655,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 660
    functionName: _RB_MINMAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_LEFT
    - RB_ROOT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_MINMAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: RB_INSERT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 667
    functionName: RB_REMOVE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: RB_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: RB_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 670
    functionName: RB_MIN
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: RB_MAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: RB_FOREACH
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH(x, name, head)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:26,1
    - Dst: evhttp_new
      Src: /src/libevent/test-export/test-export.c:28,1
    - Dst: evdns_base_new
      Src: /src/libevent/test-export/test-export.c:29,1
    - Dst: evrpc_init
      Src: /src/libevent/test-export/test-export.c:33,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:36,1
    - Dst: evhttp_free
      Src: /src/libevent/test-export/test-export.c:38,1
    - Dst: evrpc_free
      Src: /src/libevent/test-export/test-export.c:40,1
    - Dst: evdns_base_free
      Src: /src/libevent/test-export/test-export.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 18
    functionDepth: 9
    functionLinenumber: 18
    functionLinenumberEnd: 45
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 35
    functionsReached:
    - evhttp_new
    - event_base_free
    - evdns_base_new
    - evrpc_free
    - evdns_base_free
    - evhttp_free
    - evrpc_init
    - event_base_new
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_pthreads
      Src: /src/libevent/test-export/test-export.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 35
    functionsReached:
    - evthread_use_pthreads
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/libevent/test-export/test-export.c:62,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/test-export/test-export.c:63,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/test-export/test-export.c:64,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/test-export/test-export.c:65,1
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:67,1
    - Dst: SSL_CTX_new
      Src: /src/libevent/test-export/test-export.c:72,1
    - Dst: SSLv23_method
      Src: /src/libevent/test-export/test-export.c:72,1
    - Dst: SSL_new
      Src: /src/libevent/test-export/test-export.c:76,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test-export/test-export.c:80,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:89,1
    - Dst: SSL_CTX_free
      Src: /src/libevent/test-export/test-export.c:91,1
    - Dst: SSL_free
      Src: /src/libevent/test-export/test-export.c:93,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 95
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 35
    functionsReached:
    - SSLv23_method
    - SSL_library_init
    - OpenSSL_add_all_algorithms
    - ERR_load_crypto_strings
    - event_base_free
    - bufferevent_openssl_socket_new
    - SSL_CTX_new
    - SSL_new
    - SSL_CTX_free
    - SSL_free
    - SSL_load_error_strings
    - event_base_new
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:106,1
    - Dst: malloc
      Src: /src/libevent/test-export/test-export.c:111,1
    - Dst: mbedtls_ssl_config_init
      Src: /src/libevent/test-export/test-export.c:115,1
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/test-export/test-export.c:117,1
    - Dst: bufferevent_mbedtls_socket_new
      Src: /src/libevent/test-export/test-export.c:119,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:128,1
    - Dst: bufferevent_mbedtls_dyncontext_free
      Src: /src/libevent/test-export/test-export.c:130,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/test-export/test-export.c:133,1
    - Dst: free
      Src: /src/libevent/test-export/test-export.c:134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 97
    functionDepth: 6
    functionLinenumber: 97
    functionLinenumberEnd: 137
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 35
    functionsReached:
    - free
    - malloc
    - event_base_free
    - mbedtls_ssl_config_free
    - bufferevent_mbedtls_dyncontext_free
    - mbedtls_ssl_config_init
    - bufferevent_mbedtls_dyncontext_new
    - event_base_new
    - bufferevent_mbedtls_socket_new
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:144,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 35
    functionsReached:
    - event_base_free
    - event_base_new
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test-export/test-export.c:159,1
    - Dst: MAKEWORD
      Src: /src/libevent/test-export/test-export.c:159,1
    - Dst: test
      Src: /src/libevent/test-export/test-export.c:162,1
    - Dst: WSACleanup
      Src: /src/libevent/test-export/test-export.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 10
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: main
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 2
    functionsReached:
    - WSAStartup
    - WSACleanup
    - test
    - MAKEWORD
    linkageType: ''
    returnType: int
    signature: int main(int argc, char const *argv[])
Fuzzer filename: /src/fuzzer_proxy.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- sys/wait.h
- sasl/saslplug.h
- sys/signalfd.h
- crc32c.h
- winerror.h
- proto_proxy.h
- stdbool.h
- jenkins_hash.h
- event2/rpc_struct.h
- slabs_mover.h
- stdint.h
- iphlpapi.h
- event2/rpc_compat.h
- config.h
- sys/stat.h
- ../ipv6-internal.h
- mbedtls/certs.h
- openssl/x509v3.h
- sys/auxv.h
- sys/param.h
- event2/util.h
- event2/http_compat.h
- altivec.h
- mbedtls/version.h
- queue.h
- cache.h
- event2/event_struct.h
- regress_http.h
- kqueue-internal.h
- ../mm-internal.h
- stddef.h
- proto_parser_type.h
- zlib.h
- proto_bin.h
- sys/locking.h
- event2/http.h
- string.h
- netinet/in.h
- evutil.h
- items.h
- seccomp.h
- ../iocp-internal.h
- stats_prefix.h
- minheap-internal.h
- sandbox.h
- sys/queue.h
- event2/keyvalq_struct.h
- openssl/x509.h
- bipbuffer.h
- ratelim-internal.h
- inttypes.h
- slab_automove.h
- time-internal.h
- openssl-compat.h
- immintrin.h
- regress_testutils.h
- mach/mach.h
- ../log-internal.h
- event2/dns.h
- fcntl.h
- evthread-internal.h
- windows.h
- assert.h
- event2/dns_struct.h
- sasl/sasl.h
- emmintrin.h
- pwd.h
- event2/listener.h
- hostcheck.h
- evsignal-internal.h
- openssl/bio.h
- openssl/pem.h
- md5.h
- ctype.h
- stdio.h
- event2/event-config.h
- pthread.h
- vendor/routelib/routelib.h
- ../strlcpy-internal.h
- sys/devpoll.h
- mcmc.h
- hash.h
- mbedtls/ctr_drbg.h
- openssl/ssl.h
- net/if.h
- evbuffer-internal.h
- winsock2.h
- event2/buffer.h
- protocol_binary.h
- stdalign.h
- stdlib.h
- lualib.h
- unistd.h
- proto_parser.h
- sys/epoll.h
- xxhash.h
- stdarg.h
- sys/timeb.h
- vendor/mcmc/mcmc.h
- event2/dns_compat.h
- event2/bufferevent_struct.h
- ../minheap-internal.h
- sys/select.h
- mbedtls/debug.h
- evconfig-private.h
- lua.h
- bcrypt.h
- restart.h
- murmur3_hash.h
- logger.h
- sysexits.h
- evmap-internal.h
- time.h
- base64.h
- event-internal.h
- memcached_dtrace.h
- event2/ws.h
- netinet/in6.h
- event2/rpc.h
- event2/tag.h
- vproc.h
- bufferevent-internal.h
- sys/capsicum.h
- signal.h
- priv.h
- changelist-internal.h
- sys/uio.h
- event2/watch.h
- netioapi.h
- mmintrin.h
- intrin.h
- iocp-internal.h
- tinytest_macros.h
- log-internal.h
- tinytest_local.h
- http-internal.h
- netinet/tcp.h
- netdb.h
- regress.h
- defer-internal.h
- mbedtls/error.h
- trace.h
- memcached.h
- sys/sysctl.h
- mbedtls/config.h
- event2/http_struct.h
- sys/tree.h
- ifaddrs.h
- event2/thread.h
- mbedtls/net.h
- BaseTsd.h
- dirent.h
- regress_ws.h
- sys/event.h
- openssl/err.h
- arpa/inet.h
- openssl_hostname_validation.h
- poll.h
- sys/time.h
- strlcpy-internal.h
- slabs.h
- arm_neon.h
- mbedtls-compat.h
- epolltable-internal.h
- ../util-internal.h
- openssl/rand.h
- sys/random.h
- sys/ioccom.h
- sys/syscall.h
- ws2tcpip.h
- io.h
- limits.h
- syslog.h
- event2/buffer_compat.h
- sha1.h
- event2/event_compat.h
- sys/mman.h
- itoa_ljust.h
- crawler.h
- authfile.h
- mbedtls/build_info.h
- mbedtls/entropy.h
- sys/un.h
- util.h
- proxy.h
- event.h
- proxy_tls.h
- errno.h
- shlobj.h
- mbedtls/net_sockets.h
- regress.gen.h
- ../event-internal.h
- extstore.h
- event2/bufferevent_ssl.h
- sys/socket.h
- regress_thread.h
- storage.h
- port.h
- util-internal.h
- termios.h
- ht-internal.h
- event2/bufferevent_compat.h
- sys/timerfd.h
- tinytest.h
- slab_automove_extstore.h
- event2/visibility.h
- getopt.h
- mbedtls/platform.h
- wepoll.h
- ./arc4random.c
- sys/resource.h
- ../evthread-internal.h
- proto_text.h
- ssl-compat.h
- mbedtls/compat-2.x.h
- mbedtls/ssl.h
- sys/ioctl.h
- afunix.h
- grp.h
- atomic.h
- liburing.h
- ipv6-internal.h
- process.h
- lauxlib.h
- event2/tag_compat.h
- tchar.h
- event2/bufferevent.h
- tls.h
- ../time-internal.h
- regress_ssl.c
- openssl/bn.h
- s390intrin.h
- evdns-internal.h
- assoc.h
- math.h
- mach/mach_time.h
- sys/sendfile.h
- event2/event.h
- sys/eventfd.h
- mm-internal.h
- evrpc-internal.h
- openssl/rsa.h
- mstcpip.h
- sasl_defs.h
- sys/types.h
- mswsock.h
report: name
sources:
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzzer_proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROXY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fuzzer_proxy.c
      type_or_value: '1'
    - item_type: preproc_def
      name: READ_BUFFER_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fuzzer_proxy.c
      type_or_value: 16384 // memcached.h
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/stats_prefix.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREFIX_HASH_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/memcached/stats_prefix.h
      type_or_value: '256'
    structs:
    - fields:
      - name: '*prefix'
        type: char
      - name: prefix_len
        type: size_t
      - name: num_gets
        type: uint64_t
      - name: num_sets
        type: uint64_t
      - name: num_deletes
        type: uint64_t
      - name: num_hits
        type: uint64_t
      - name: '*next'
        type: PREFIX_STATS
      item_type: struct
      name: _prefix_stats
      pos:
        line_end: 49
        line_start: 41
        source_file: /src/memcached/stats_prefix.h
    typedefs:
    - item_type: typedef
      name: PREFIX_STATS
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/memcached/stats_prefix.h
      type: _prefix_stats
    union: []
- function_names:
  - tcp_read
  - tcp_write
  - ssl_read
  - ssl_write
  - close_conn
  - cache_create_test
  - cache_reuse_test
  - cache_bulkalloc
  - test_issue_161
  - cache_redzone_test
  - cache_limit_revised_downward_test
  - test_stats_prefix_find
  - test_stats_prefix_record_get
  - test_stats_prefix_record_delete
  - test_stats_prefix_record_set
  - test_stats_prefix_dump
  - test_safe_strtoul
  - test_safe_strtoull
  - test_safe_strtoll
  - test_safe_strtol
  - start_server
  - test_issue_44
  - lookuphost
  - connect_server
  - test_vperror
  - send_ascii_command
  - read_ascii_response
  - test_issue_92
  - test_crc32c
  - test_issue_102
  - start_memcached_server
  - stop_memcached_server
  - shutdown_memcached_server
  - safe_send
  - safe_recv
  - safe_recv_packet
  - storage_command
  - ext_command
  - raw_command
  - flush_command
  - touch_command
  - arithmetic_command
  - validate_response_header
  - test_binary_noop
  - test_binary_quit_impl
  - test_binary_quit
  - test_binary_quitq
  - test_binary_set_impl
  - test_binary_set
  - test_binary_setq
  - test_binary_add_impl
  - test_binary_add
  - test_binary_addq
  - test_binary_replace_impl
  - test_binary_replace
  - test_binary_replaceq
  - test_binary_delete_impl
  - test_binary_delete
  - test_binary_deleteq
  - test_binary_get_impl
  - test_binary_get
  - test_binary_getk
  - test_binary_gat
  - test_binary_gatk
  - test_binary_getq_impl
  - test_binary_getq
  - test_binary_getkq
  - test_binary_gatq
  - test_binary_gatkq
  - test_binary_incr_impl
  - test_binary_incr
  - test_binary_incrq
  - test_binary_decr_impl
  - test_binary_decr
  - test_binary_decrq
  - test_binary_version
  - test_binary_flush_impl
  - test_binary_flush
  - test_binary_flushq
  - test_binary_concat_impl
  - test_binary_append
  - test_binary_prepend
  - test_binary_appendq
  - test_binary_prependq
  - test_binary_stat
  - test_binary_illegal
  - binary_hickup_recv_verification_thread
  - test_binary_pipeline_hickup_chunk
  - test_binary_pipeline_hickup
  - test_issue_101
  - STATS_LOCK
  - STATS_UNLOCK
  - main
  source_file: /src/memcached/testapp.c
  types:
    enum:
    - enumerators:
      - name: TEST_SKIP
      - name: TEST_FAIL
      - name: TEST_PASS
      item_type: enum
      name: test_return
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/memcached/testapp.c
    preproc_defs:
    - item_type: preproc_def
      name: TMP_TEMPLATE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/memcached/testapp.c
      type_or_value: '"/tmp/test_file.XXXXXXX"'
    - item_type: preproc_def
      name: ITERATIONS
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/memcached/testapp.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: sock
        type: int
      - name: (*read)(struct conn  *c, void *buf, size_t count)
        type: ssize_t
      - name: (*write)(struct conn *c, const void *buf, size_t count)
        type: ssize_t
      item_type: struct
      name: conn
      pos:
        line_end: 44
        line_start: 36
        source_file: /src/memcached/testapp.c
    - fields:
      - name: '*description'
        type: char
      - name: function
        type: TEST_FUNC
      item_type: struct
      name: testcase
      pos:
        line_end: 2256
        line_start: 2253
        source_file: /src/memcached/testapp.c
    typedefs:
    - item_type: typedef
      name: (*TEST_FUNC)(void)
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/memcached/testapp.c
      type: test_return
    union:
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: buffer
      pos:
        line_end: 1335
        line_start: 1331
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: buffer
      pos:
        line_end: 1354
        line_start: 1350
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1387
        line_start: 1383
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1437
        line_start: 1433
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1476
        line_start: 1472
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1527
        line_start: 1523
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1576
        line_start: 1572
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: temp
      pos:
        line_end: 1608
        line_start: 1605
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1648
        line_start: 1644
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response_header
        type: protocol_binary_response_no_extras
      - name: response
        type: protocol_binary_response_incr
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1708
        line_start: 1703
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response_header
        type: protocol_binary_response_no_extras
      - name: response
        type: protocol_binary_response_decr
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1745
        line_start: 1740
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: buffer
      pos:
        line_end: 1789
        line_start: 1785
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1808
        line_start: 1804
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: send
      pos:
        line_end: 1884
        line_start: 1880
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: buffer
      pos:
        line_end: 1970
        line_start: 1966
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: response
        type: protocol_binary_response_no_extras
      - name: bytes[1024]
        type: char
      item_type: union
      name: buffer
      pos:
        line_end: 1993
        line_start: 1989
        source_file: /src/memcached/testapp.c
    - fields:
      - name: request
        type: protocol_binary_request_no_extras
      - name: bytes[65 * 1024]
        type: char
      item_type: union
      name: command
      pos:
        line_end: 2034
        line_start: 2031
        source_file: /src/memcached/testapp.c
- function_names:
  - slabs_clsid
  - slabs_size
  - alloc_large_chunk
  - slabs_fixup
  - slabs_init
  - slabs_prefill_global
  - slabs_preallocate
  - do_grow_slab_list
  - slabs_grow_slab_list
  - split_slab_page_into_freelist
  - get_page_from_global_pool
  - do_slabs_newslab
  - do_slabs_alloc
  - do_slabs_free_chunked
  - do_slabs_free
  - fill_slab_stats_automove
  - global_page_pool_size
  - do_slabs_stats
  - memory_allocate
  - memory_release
  - slabs_alloc
  - slabs_free
  - slabs_stats
  - do_slabs_adjust_mem_limit
  - slabs_adjust_mem_limit
  - slabs_available_chunks
  - slabs_peek_page
  - do_slabs_unlink_free_chunk
  - slabs_finalize_page_move
  - slabs_pick_any_for_reassign
  - slabs_page_count
  - slabs_locked_callback
  - slabs_mlock
  - slabs_munlock
  source_file: /src/memcached/slabs.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: uint32_t
      - name: perslab
        type: uint32_t
      - name: '*slots'
        type: void
      - name: sl_curr
        type: unsigned int
      - name: slabs
        type: unsigned int
      - name: '**slab_list'
        type: void
      - name: list_size
        type: unsigned int
      item_type: struct
      name: slabclass_t
      pos:
        line_end: 34
        line_start: 23
        source_file: /src/memcached/slabs.c
    typedefs: []
    union: []
- function_names:
  - ITEM_get_cas
  - ITEM_set_cas
  - ITEM_key
  - ITEM_suffix
  - ITEM_data
  - ITEM_ntotal
  - ITEM_clsid
  - ITEM_lruid
  - APPEND_STAT
  - APPEND_NUM_FMT_STAT
  - APPEND_NUM_STAT
  - FLAGS_CONV
  - FLAGS_SIZE
  - IS_TCP
  - IS_UDP
  - X
  - X
  - ITEM_schunk
  - ITEM_schunk
  - conn_resp_suspend
  - conn_resp_unsuspend
  - mutex_lock
  - mutex_trylock
  - mutex_unlock
  - refcount_incr
  - refcount_decr
  - THR_STATS_LOCK
  - THR_STATS_UNLOCK
  - EXPTIME_TO_POSITIVE_TIME
  - __builtin_expect
  - likely
  - unlikely
  source_file: /src/memcached/memcached.h
  types:
    enum:
    - enumerators:
      - name: conn_listening
      - name: conn_new_cmd
      - name: conn_parse_cmd
      - name: conn_waiting
      - name: conn_read
      - name: conn_write
      - name: conn_nread
      - name: conn_swallow
      - name: conn_closing
      - name: conn_mwrite
      - name: conn_closed
      - name: conn_watch
      - name: conn_io_pending
      - name: conn_io_queue
      - name: conn_io_resume
      - name: conn_max_state
      item_type: enum
      name: conn_states
      pos:
        line_end: 218
        line_start: 201
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: bin_no_state
      - name: bin_reading_get_key
      - name: bin_read_set_value
      - name: bin_reading_cas_header
      - name: bin_reading_set_header
      - name: bin_reading_stat
      - name: bin_reading_del_header
      - name: bin_reading_incr_header
      - name: bin_read_flush_exptime
      - name: bin_reading_sasl_auth
      - name: bin_reading_sasl_auth_data
      - name: bin_reading_touch_key
      item_type: enum
      name: bin_substates
      pos:
        line_end: 233
        line_start: 220
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: ascii_prot
        value: '3'
      - name: negotiating_prot
      - name: proxy_prot
      - name: binary_prot
      item_type: enum
      name: protocol
      pos:
        line_end: 242
        line_start: 235
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: local_transport
      - name: udp_transport
      - name: tcp_transport
      item_type: enum
      name: network_transport
      pos:
        line_end: 248
        line_start: 244
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: PAUSE_WORKER_THREADS
        value: '0'
      - name: RESUME_ALL_THREADS
      - name: PAUSE_ALL_THREADS
      - name: RESUME_WORKER_THREADS
      item_type: enum
      name: pause_thread_types
      pos:
        line_end: 255
        line_start: 250
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: NOT_STOP
      - name: EXIT_NORMALLY
      - name: GRACE_STOP
      item_type: enum
      name: stop_reasons
      pos:
        line_end: 261
        line_start: 257
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: ERROR_CLOSE
      - name: NORMAL_CLOSE
      - name: SHUTDOWN_CLOSE
      - name: IDLE_TIMEOUT_CLOSE
      item_type: enum
      name: close_reasons
      pos:
        line_end: 268
        line_start: 263
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: NOT_STORED
        value: '0'
      - name: TOO_LARGE
      - name: NOT_FOUND
      - name: EXISTS
      - name: STORED
      - name: NO_MEMORY
      item_type: enum
      name: store_item_type
      pos:
        line_end: 290
        line_start: 288
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: OK
      - name: DELTA_ITEM_NOT_FOUND
      - name: EOM
      - name: NON_NUMERIC
      - name: DELTA_ITEM_CAS_MISMATCH
      item_type: enum
      name: delta_result_type
      pos:
        line_end: 294
        line_start: 292
        source_file: /src/memcached/memcached.h
    - enumerators:
      - name: CRAWLER_AUTOEXPIRE
        value: '0'
      - name: CRAWLER_METADUMP
      - name: CRAWLER_EXPIRED
      - name: CRAWLER_MGDUMP
      item_type: enum
      name: crawler_run_type
      pos:
        line_end: 624
        line_start: 622
        source_file: /src/memcached/memcached.h
    preproc_defs:
    - item_type: preproc_def
      name: IOV_MAX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/memcached/memcached.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/memcached/memcached.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: SOCK_COOKIE_ID
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/memcached/memcached.h
      type_or_value: SO_MARK
    - item_type: preproc_def
      name: SOCK_COOKIE_ID
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/memcached/memcached.h
      type_or_value: SO_USER_COOKIE
    - item_type: preproc_def
      name: SOCK_COOKIE_ID
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/memcached/memcached.h
      type_or_value: SO_RTABLE
    - item_type: preproc_def
      name: SO_INCOMING_NAPI_ID
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/memcached/memcached.h
      type_or_value: '56'
    - item_type: preproc_def
      name: KEY_MAX_LENGTH
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/memcached/memcached.h
      type_or_value: '250'
    - item_type: preproc_def
      name: KEY_MAX_URI_ENCODED_LENGTH
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/memcached/memcached.h
      type_or_value: (KEY_MAX_LENGTH  * 3 + 1)
    - item_type: preproc_def
      name: INCR_MAX_STORAGE_LEN
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/memcached/memcached.h
      type_or_value: '24'
    - item_type: preproc_def
      name: WRITE_BUFFER_SIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/memcached/memcached.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: READ_BUFFER_SIZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/memcached/memcached.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: READ_BUFFER_CACHED
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/memcached/memcached.h
      type_or_value: '0'
    - item_type: preproc_def
      name: UDP_READ_BUFFER_SIZE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/memcached/memcached.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: UDP_MAX_PAYLOAD_SIZE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/memcached/memcached.h
      type_or_value: '1400'
    - item_type: preproc_def
      name: UDP_HEADER_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/memcached/memcached.h
      type_or_value: '8'
    - item_type: preproc_def
      name: UDP_DATA_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/memcached/memcached.h
      type_or_value: 1392 // UDP_MAX_PAYLOAD_SIZE - UDP_HEADER_SIZE
    - item_type: preproc_def
      name: MAX_SENDBUF_SIZE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/memcached/memcached.h
      type_or_value: (256 * 1024 * 1024)
    - item_type: preproc_def
      name: BIN_MAX_EXTLEN
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/memcached/memcached.h
      type_or_value: 20 // length of the _incr command is currently the longest.
    - item_type: preproc_def
      name: HASHPOWER_DEFAULT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/memcached/memcached.h
      type_or_value: '16'
    - item_type: preproc_def
      name: HASHPOWER_MAX
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/memcached/memcached.h
      type_or_value: '32'
    - item_type: preproc_def
      name: safe_strtoflags
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/memcached/memcached.h
      type_or_value: safe_strtoull
    - item_type: preproc_def
      name: safe_strtoflags
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/memcached/memcached.h
      type_or_value: safe_strtoul
    - item_type: preproc_def
      name: ITEM_UPDATE_INTERVAL
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/memcached/memcached.h
      type_or_value: '60'
    - item_type: preproc_def
      name: ITEM_SIZE_MAX_LOWER_LIMIT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/memcached/memcached.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: ITEM_SIZE_MAX_UPPER_LIMIT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/memcached/memcached.h
      type_or_value: 1024 * 1024 * 1024
    - item_type: preproc_def
      name: POWER_SMALLEST
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/memcached/memcached.h
      type_or_value: '1'
    - item_type: preproc_def
      name: POWER_LARGEST
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/memcached/memcached.h
      type_or_value: '256 '
    - item_type: preproc_def
      name: SLAB_GLOBAL_PAGE_POOL
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/memcached/memcached.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: CHUNK_ALIGN_BYTES
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/memcached/memcached.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_NUMBER_OF_SLAB_CLASSES
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/memcached/memcached.h
      type_or_value: (63 + 1)
    - item_type: preproc_def
      name: TAIL_REPAIR_TIME_DEFAULT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/memcached/memcached.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STAT_KEY_LEN
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/memcached/memcached.h
      type_or_value: '128'
    - item_type: preproc_def
      name: STAT_VAL_LEN
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/memcached/memcached.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NREAD_ADD
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/memcached/memcached.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NREAD_SET
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/memcached/memcached.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NREAD_REPLACE
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/memcached/memcached.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NREAD_APPEND
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/memcached/memcached.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NREAD_PREPEND
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/memcached/memcached.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NREAD_CAS
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/memcached/memcached.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NREAD_APPENDVIV
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/memcached/memcached.h
      type_or_value: 7 // specific to meta
    - item_type: preproc_def
      name: NREAD_PREPENDVIV
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/memcached/memcached.h
      type_or_value: 8 // specific to meta
    - item_type: preproc_def
      name: CAS_ALLOW_STALE
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/memcached/memcached.h
      type_or_value: 'true'
    - item_type: preproc_def
      name: CAS_NO_STALE
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/memcached/memcached.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: LOG_TYPE_DELETE
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/memcached/memcached.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LOG_TYPE_META_DELETE
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/memcached/memcached.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLAB_STATS_FIELDS
      pos:
        line_end: 313
        line_start: 304
        source_file: /src/memcached/memcached.h
      type_or_value: "X(set_cmds) \\\n    X(get_hits) \\\n    X(touch_hits) \\\n    X(delete_hits)
        \\\n    X(cas_hits) \\\n    X(cas_badval) \\\n    X(incr_hits) \\\n    X(decr_hits)"
    - item_type: preproc_def
      name: THREAD_STATS_FIELDS
      pos:
        line_end: 336
        line_start: 321
        source_file: /src/memcached/memcached.h
      type_or_value: "X(get_cmds) \\\n    X(get_misses) \\\n    X(get_expired) \\\n
        \   X(get_flushed) \\\n    X(touch_cmds) \\\n    X(touch_misses) \\\n    X(delete_misses)
        \\\n    X(incr_misses) \\\n    X(decr_misses) \\\n    X(cas_misses) \\\n    X(meta_cmds)
        \\\n    X(bytes_read) \\\n    X(bytes_written) \\\n    X(flush_cmds) \\\n
        \   X(conn_yields) "
    - item_type: preproc_def
      name: EXTSTORE_THREAD_STATS_FIELDS
      pos:
        line_end: 355
        line_start: 348
        source_file: /src/memcached/memcached.h
      type_or_value: "X(get_extstore) \\\n    X(get_aborted_extstore) \\\n    X(get_oom_extstore)
        \\\n    X(recache_from_extstore) \\\n    X(miss_from_extstore) \\\n    X(badcrc_from_extstore)"
    - item_type: preproc_def
      name: PROXY_THREAD_STATS_FIELDS
      pos:
        line_end: 362
        line_start: 358
        source_file: /src/memcached/memcached.h
      type_or_value: "X(proxy_conn_requests) \\\n    X(proxy_conn_errors) \\\n    X(proxy_conn_oom)"
    - item_type: preproc_def
      name: MAX_VERBOSITY_LEVEL
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/memcached/memcached.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ITEM_LINKED
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/memcached/memcached.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ITEM_CAS
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/memcached/memcached.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ITEM_SLABBED
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/memcached/memcached.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ITEM_FETCHED
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/memcached/memcached.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ITEM_ACTIVE
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/memcached/memcached.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ITEM_CHUNKED
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/memcached/memcached.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ITEM_CHUNK
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/memcached/memcached.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ITEM_HDR
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/memcached/memcached.h
      type_or_value: '128'
    - item_type: preproc_def
      name: ITEM_CFLAGS
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/memcached/memcached.h
      type_or_value: '256'
    - item_type: preproc_def
      name: ITEM_TOKEN_SENT
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/memcached/memcached.h
      type_or_value: '512'
    - item_type: preproc_def
      name: ITEM_TOKEN_RESERVED
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/memcached/memcached.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: ITEM_STALE
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/memcached/memcached.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: ITEM_KEY_BINARY
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/memcached/memcached.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: ITEM_PRESERVE_FLAGS
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/memcached/memcached.h
      type_or_value: (ITEM_FETCHED|ITEM_TOKEN_SENT|ITEM_STALE|ITEM_KEY_BINARY)
    - item_type: preproc_def
      name: IO_QUEUE_COUNT
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/memcached/memcached.h
      type_or_value: '3'
    - item_type: preproc_def
      name: IO_QUEUE_NONE
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/memcached/memcached.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IO_QUEUE_EXTSTORE
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/memcached/memcached.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IO_QUEUE_PROXY
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/memcached/memcached.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IO_PENDING_TYPE_NONE
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/memcached/memcached.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IO_PENDING_TYPE_BASIC
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/memcached/memcached.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IO_PENDING_TYPE_EXTSTORE
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/memcached/memcached.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IO_PENDING_TYPE_PROXY
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/memcached/memcached.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MC_RESP_IOVCOUNT
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/memcached/memcached.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_RESP_PER_BUNDLE
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/memcached/memcached.h
      type_or_value: ((READ_BUFFER_SIZE - sizeof(mc_resp_bundle)) / sizeof(mc_resp))
    - item_type: preproc_def
      name: DO_UPDATE
      pos:
        line_end: 1004
        line_start: 1003
        source_file: /src/memcached/memcached.h
      type_or_value: 'true'
    - item_type: preproc_def
      name: DONT_UPDATE
      pos:
        line_end: 1005
        line_start: 1004
        source_file: /src/memcached/memcached.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: REALTIME_MAXDELTA
      pos:
        line_end: 1041
        line_start: 1040
        source_file: /src/memcached/memcached.h
      type_or_value: 60*60*24*30
    structs:
    - fields: []
      item_type: struct
      name: slab_stats
      pos:
        line_end: 319
        line_start: 315
        source_file: /src/memcached/memcached.h
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: slab_stats[MAX_NUMBER_OF_SLAB_CLASSES]
        type: struct slab_stats
      - name: lru_hits[POWER_LARGEST]
        type: uint64_t
      - name: read_buf_count
        type: uint64_t
      - name: read_buf_bytes
        type: uint64_t
      - name: read_buf_bytes_free
        type: uint64_t
      item_type: struct
      name: thread_stats
      pos:
        line_end: 384
        line_start: 367
        source_file: /src/memcached/memcached.h
    - fields:
      - name: total_items
        type: uint64_t
      - name: total_conns
        type: uint64_t
      - name: rejected_conns
        type: uint64_t
      - name: malloc_fails
        type: uint64_t
      - name: listen_disabled_num
        type: uint64_t
      - name: slabs_moved
        type: uint64_t
      - name: slab_reassign_rescues
        type: uint64_t
      - name: slab_reassign_inline_reclaim
        type: uint64_t
      - name: slab_reassign_chunk_rescues
        type: uint64_t
      - name: slab_reassign_busy_items
        type: uint64_t
      - name: slab_reassign_busy_deletes
        type: uint64_t
      - name: slab_reassign_busy_nomem
        type: uint64_t
      - name: '*  slab_reassign_last_busy_status'
        type: char
      - name: lru_crawler_starts
        type: uint64_t
      - name: lru_maintainer_juggles
        type: uint64_t
      - name: time_in_listen_disabled_us
        type: uint64_t
      - name: log_worker_dropped
        type: uint64_t
      - name: log_worker_written
        type: uint64_t
      - name: log_watcher_skipped
        type: uint64_t
      - name: log_watcher_sent
        type: uint64_t
      - name: maxconns_entered
        type: struct timeval
      - name: unexpected_napi_ids
        type: uint64_t
      - name: round_robin_fallback
        type: uint64_t
      item_type: struct
      name: stats
      pos:
        line_end: 425
        line_start: 389
        source_file: /src/memcached/memcached.h
    - fields:
      - name: curr_items
        type: uint64_t
      - name: curr_bytes
        type: uint64_t
      - name: curr_conns
        type: uint64_t
      - name: hash_bytes
        type: uint64_t
      - name: extstore_memory_pressure
        type: float
      - name: conn_structs
        type: unsigned int
      - name: reserved_fds
        type: unsigned int
      - name: hash_power_level
        type: unsigned int
      - name: log_watchers
        type: unsigned int
      - name: hash_is_expanding
        type: bool
      - name: accepting_conns
        type: bool
      - name: slab_reassign_running
        type: bool
      - name: lru_crawler_running
        type: bool
      item_type: struct
      name: stats_state
      pos:
        line_end: 445
        line_start: 431
        source_file: /src/memcached/memcached.h
    - fields:
      - name: maxbytes
        type: size_t
      - name: maxconns
        type: int
      - name: port
        type: int
      - name: udpport
        type: int
      - name: '*inter'
        type: char
      - name: verbose
        type: int
      - name: oldest_live
        type: rel_time_t
      - name: evict_to_free
        type: int
      - name: '*socketpath'
        type: char
      - name: '*auth_file'
        type: char
      - name: access
        type: int
      - name: factor
        type: double
      - name: chunk_size
        type: int
      - name: num_threads
        type: int
      - name: num_threads_per_udp
        type: int
      - name: prefix_delimiter
        type: char
      - name: detail_enabled
        type: int
      - name: reqs_per_event
        type: int
      - name: use_cas
        type: bool
      - name: binding_protocol
        type: enum protocol
      - name: backlog
        type: int
      - name: item_size_max
        type: int
      - name: slab_chunk_size_max
        type: int
      - name: slab_page_size
        type: int
      - name: sig_hup
        type: sig_atomic_t
      - name: sasl
        type: bool
      - name: maxconns_fast
        type: bool
      - name: lru_crawler
        type: bool
      - name: lru_maintainer_thread
        type: bool
      - name: lru_segmented
        type: bool
      - name: slab_reassign
        type: bool
      - name: ssl_enabled
        type: bool
      - name: slab_automove
        type: int
      - name: slab_automove_version
        type: unsigned int
      - name: slab_automove_ratio
        type: double
      - name: slab_automove_freeratio
        type: double
      - name: slab_automove_window
        type: unsigned int
      - name: hashpower_init
        type: int
      - name: shutdown_command
        type: bool
      - name: tail_repair_time
        type: int
      - name: flush_enabled
        type: bool
      - name: dump_enabled
        type: bool
      - name: '*hash_algorithm'
        type: char
      - name: lru_crawler_sleep
        type: int
      - name: lru_crawler_tocrawl
        type: uint32_t
      - name: hot_lru_pct
        type: int
      - name: warm_lru_pct
        type: int
      - name: hot_max_factor
        type: double
      - name: warm_max_factor
        type: double
      - name: crawls_persleep
        type: int
      - name: temp_lru
        type: bool
      - name: temporary_ttl
        type: uint32_t
      - name: idle_timeout
        type: int
      - name: logger_watcher_buf_size
        type: unsigned int
      - name: logger_buf_size
        type: unsigned int
      - name: read_buf_mem_limit
        type: unsigned int
      - name: drop_privileges
        type: bool
      - name: watch_enabled
        type: bool
      - name: relaxed_privileges
        type: bool
      - name: '*slab_rebal'
        type: struct slab_rebal_thread
      - name: num_napi_ids
        type: int
      - name: '*memory_file'
        type: char
      item_type: struct
      name: settings
      pos:
        line_end: 558
        line_start: 453
        source_file: /src/memcached/memcached.h
    - fields:
      - name: '*next'
        type: struct _stritem
      - name: '*prev'
        type: struct _stritem
      - name: '*h_next'
        type: struct _stritem
      - name: time
        type: rel_time_t
      - name: exptime
        type: rel_time_t
      - name: nbytes
        type: int
      - name: refcount
        type: unsigned short
      - name: it_flags
        type: uint16_t
      - name: slabs_clsid
        type: uint8_t
      - name: nkey
        type: uint8_t
      - name: data[]
        type: "union {\n        uint64_t cas;\n        char end;\n    }"
      item_type: struct
      name: _stritem
      pos:
        line_end: 619
        line_start: 596
        source_file: /src/memcached/memcached.h
    - fields:
      - name: '*next'
        type: struct _stritem
      - name: '*prev'
        type: struct _stritem
      - name: '*h_next'
        type: struct _stritem
      - name: time
        type: rel_time_t
      - name: exptime
        type: rel_time_t
      - name: nbytes
        type: int
      - name: refcount
        type: unsigned short
      - name: it_flags
        type: uint16_t
      - name: slabs_clsid
        type: uint8_t
      - name: nkey
        type: uint8_t
      - name: remaining
        type: uint32_t
      - name: reclaimed
        type: uint64_t
      - name: unfetched
        type: uint64_t
      - name: checked
        type: uint64_t
      item_type: struct
      name: crawler
      pos:
        line_end: 641
        line_start: 626
        source_file: /src/memcached/memcached.h
    - fields:
      - name: '*next'
        type: struct _strchunk
      - name: '*prev'
        type: struct _strchunk
      - name: '*head'
        type: struct _stritem
      - name: size
        type: int
      - name: used
        type: int
      - name: nbytes
        type: int
      - name: refcount
        type: unsigned short
      - name: it_flags
        type: uint16_t
      - name: slabs_clsid
        type: uint8_t
      - name: orig_clsid
        type: uint8_t
      - name: data[]
        type: char
      item_type: struct
      name: _strchunk
      pos:
        line_end: 656
        line_start: 644
        source_file: /src/memcached/memcached.h
    - fields:
      - name: page_version
        type: unsigned int
      - name: offset
        type: unsigned int
      - name: page_id
        type: unsigned short
      item_type: struct
      name: item_hdr
      pos:
        line_end: 680
        line_start: 676
        source_file: /src/memcached/memcached.h
    - fields:
      - name: '*ctx'
        type: void
      - name: stack
        type: iop_head_t
      - name: submit_cb
        type: io_queue_stack_cb
      - name: type
        type: int
      item_type: struct
      name: io_queue_s
      pos:
        line_end: 707
        line_start: 702
        source_file: /src/memcached/memcached.h
    - fields:
      - name: notify_event
        type: struct event
      item_type: struct
      name: thread_notify
      pos:
        line_end: 717
        line_start: 709
        source_file: /src/memcached/memcached.h
    - fields:
      - name: thread_id
        type: pthread_t
      - name: '*base'
        type: struct event_base
      - name: n
        type: struct thread_notify
      - name: ion
        type: struct thread_notify
      - name: ion_lock
        type: pthread_mutex_t
      - name: ion_head
        type: iop_head_t
      - name: cur_sfd
        type: int
      - name: thread_baseid
        type: int
      - name: conns_tosubmit
        type: int
      - name: stats
        type: struct thread_stats
      - name: io_queues[IO_QUEUE_COUNT]
        type: io_queue_t
      - name: '*ev_queue'
        type: struct conn_queue
      - name: '*rbuf_cache'
        type: cache_t
      - name: '*open_bundle'
        type: mc_resp_bundle
      - name: '*io_cache'
        type: cache_t
      - name: '*l'
        type: logger
      - name: '*lru_bump_buf'
        type: void
      - name: napi_id
        type: int
      item_type: struct
      name: LIBEVENT_THREAD
      pos:
        line_end: 764
        line_start: 720
        source_file: /src/memcached/memcached.h
    - fields:
      - name: '*bundle'
        type: mc_resp_bundle
      - name: '*next'
        type: struct _mc_resp
      - name: wbytes
        type: int
      - name: tosend
        type: int
      - name: '*write_and_free'
        type: void
      - name: '*io_pending'
        type: io_pending_t
      - name: '*item'
        type: item
      - name: iov[MC_RESP_IOVCOUNT]
        type: struct iovec
      - name: chunked_total
        type: int
      - name: iovcnt
        type: uint8_t
      - name: chunked_data_iov
        type: uint8_t
      - name: skip
        type: bool
      - name: suspended
        type: bool
      - name: free
        type: bool
      - name: noreply
        type: bool
      - name: binary_prot
        type: bool
      - name: mset_res
        type: bool
      - name: set_stale
        type: bool
      - name: request_id
        type: uint16_t
      - name: udp_sequence
        type: uint16_t
      - name: udp_total
        type: uint16_t
      - name: request_addr
        type: struct sockaddr_in6
      - name: request_addr_size
        type: socklen_t
      - name: wbuf[WRITE_BUFFER_SIZE]
        type: char
      item_type: struct
      name: _mc_resp
      pos:
        line_end: 805
        line_start: 770
        source_file: /src/memcached/memcached.h
    - fields:
      - name: refcount
        type: uint8_t
      - name: next_check
        type: uint8_t
      - name: '*thread'
        type: LIBEVENT_THREAD
      - name: '*next'
        type: struct _mc_resp_bundle
      - name: '*prev'
        type: struct _mc_resp_bundle
      - name: r[]
        type: mc_resp
      item_type: struct
      name: _mc_resp_bundle
      pos:
        line_end: 815
        line_start: 808
        source_file: /src/memcached/memcached.h
    - fields:
      - name: io_queue_type
        type: uint8_t
      - name: io_sub_type
        type: uint8_t
      - name: payload
        type: uint8_t
      - name: '*thread'
        type: LIBEVENT_THREAD
      - name: '*c'
        type: conn
      - name: '*resp'
        type: mc_resp
      - name: return_cb
        type: io_queue_cb
      - name: finalize_cb
        type: io_queue_cb
      - name: (_io_pending_t)
        type: STAILQ_ENTRY
      - name: data[120]
        type: char
      item_type: struct
      name: _io_pending_t
      pos:
        line_end: 830
        line_start: 819
        source_file: /src/memcached/memcached.h
    - fields:
      - name: '*sasl_conn'
        type: sasl_conn_t
      - name: sfd
        type: int
      - name: sasl_started
        type: bool
      - name: authenticated
        type: bool
      - name: close_after_write
        type: bool
      - name: rbuf_malloced
        type: bool
      - name: item_malloced
        type: bool
      - name: ssl_enabled
        type: uint8_t
      - name: '*ssl'
        type: void
      - name: state
        type: enum conn_states
      - name: substate
        type: enum bin_substates
      - name: last_cmd_time
        type: rel_time_t
      - name: event
        type: struct event
      - name: ev_flags
        type: short
      - name: which
        type: short
      - name: '*rbuf'
        type: char
      - name: '*rcurr'
        type: char
      - name: rsize
        type: int
      - name: rbytes
        type: int
      - name: '*resp'
        type: mc_resp
      - name: '*resp_head'
        type: mc_resp
      - name: '*ritem'
        type: char
      - name: rlbytes
        type: int
      - name: '*item'
        type: void
      - name: sbytes
        type: int
      - name: resps_suspended
        type: int
      - name: protocol
        type: enum protocol
      - name: transport
        type: enum network_transport
      - name: close_reason
        type: enum close_reasons
      - name: request_id
        type: int
      - name: request_addr
        type: struct sockaddr_in6
      - name: request_addr_size
        type: socklen_t
      - name: stats
        type: "struct {\n        char *buffer;\n        size_t size;\n        size_t
          offset;\n    }"
      - name: binary_header
        type: protocol_binary_request_header
      - name: cas
        type: uint64_t
      - name: tag
        type: uint64_t
      - name: cmd
        type: short
      - name: opaque
        type: int
      - name: keylen
        type: int
      - name: '*next'
        type: conn
      - name: '*thread'
        type: LIBEVENT_THREAD
      - name: (*try_read_command)(conn *c)
        type: int
      - name: (*read)(conn  *c, void *buf, size_t count)
        type: ssize_t
      - name: (*sendmsg)(conn *c, struct msghdr *msg, int flags)
        type: ssize_t
      - name: (*write)(conn *c, void *buf, size_t count)
        type: ssize_t
      item_type: struct
      name: conn
      pos:
        line_end: 913
        line_start: 835
        source_file: /src/memcached/memcached.h
    typedefs:
    - item_type: typedef
      name: client_flags_t
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/memcached/memcached.h
      type: uint64_t
    - item_type: typedef
      name: client_flags_t
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/memcached/memcached.h
      type: uint32_t
    - item_type: typedef
      name: "(*ADD_STAT)(const char *key, const uint16_t klen,\n                         const
        char *val, const uint32_t vlen,\n                         const void *cookie)"
      pos:
        line_end: 193
        line_start: 191
        source_file: /src/memcached/memcached.h
      type: void
    - item_type: typedef
      name: (iop_head_s, _io_pending_t)
      pos:
        line_end: 694
        line_start: 694
        source_file: /src/memcached/memcached.h
      type: STAILQ_HEAD
    - item_type: typedef
      name: io_pending_t
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/memcached/memcached.h
      type: _io_pending_t
    - item_type: typedef
      name: io_queue_t
      pos:
        line_end: 696
        line_start: 696
        source_file: /src/memcached/memcached.h
      type: io_queue_s
    - item_type: typedef
      name: (*io_queue_stack_cb)(io_queue_t *q)
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/memcached/memcached.h
      type: void
    - item_type: typedef
      name: (*io_queue_cb)(io_pending_t *pending)
      pos:
        line_end: 698
        line_start: 698
        source_file: /src/memcached/memcached.h
      type: void
    - item_type: typedef
      name: mc_resp_bundle
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/memcached/memcached.h
      type: _mc_resp_bundle
    - item_type: typedef
      name: conn
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/memcached/memcached.h
      type: conn
    union: []
- function_names: []
  source_file: /src/memcached/murmur3_hash.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - slab_automove_extstore_init
  - slab_automove_extstore_free
  - window_sum
  - global_pool_check
  - memcheck
  - get_window_data
  - slab_automove_extstore_run
  source_file: /src/memcached/slab_automove_extstore.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_PAGES_FOR_SOURCE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/memcached/slab_automove_extstore.c
      type_or_value: '2'
    structs:
    - fields:
      - name: age
        type: uint64_t
      - name: dirty
        type: uint64_t
      - name: evicted
        type: uint64_t
      - name: excess_free
        type: unsigned int
      - name: relaxed
        type: unsigned int
      item_type: struct
      name: window_data
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/memcached/slab_automove_extstore.c
    - fields:
      - name: '*window_data'
        type: struct window_data
      - name: '*settings'
        type: struct settings
      - name: window_size
        type: uint32_t
      - name: window_cur
        type: uint32_t
      - name: item_size
        type: uint32_t
      - name: max_age_ratio
        type: double
      - name: free_ratio
        type: double
      - name: pool_filled_once
        type: bool
      - name: global_pool_watermark
        type: unsigned int
      - name: iam_before[MAX_NUMBER_OF_SLAB_CLASSES]
        type: item_stats_automove
      - name: iam_after[MAX_NUMBER_OF_SLAB_CLASSES]
        type: item_stats_automove
      - name: sam_before[MAX_NUMBER_OF_SLAB_CLASSES]
        type: slab_stats_automove
      - name: sam_after[MAX_NUMBER_OF_SLAB_CLASSES]
        type: slab_stats_automove
      item_type: struct
      name: slab_automove
      pos:
        line_end: 38
        line_start: 24
        source_file: /src/memcached/slab_automove_extstore.c
    typedefs: []
    union: []
- function_names:
  - _process_token_len
  - _finalize_mset
  - complete_nread_ascii
  - try_read_command_asciiauth
  - try_read_command_ascii
  - process_get_command_err
  - process_get_command
  - process_stats_detail
  - process_stat
  - process_meta_command
  - process_mset_command
  - process_update_command
  - process_verbosity_command
  - process_misbehave_command
  - process_debugtime_command
  - process_debugitem_command
  - process_slabs_automove_command
  - process_watch_command
  - process_memlimit_command
  - process_lru_command
  - process_extstore_command
  - process_flush_all_command
  - process_version_command
  - process_quit_command
  - process_shutdown_command
  - process_slabs_command
  - process_lru_crawler_command
  - process_refresh_certs_command
  - process_command_ascii
  source_file: /src/memcached/proto_text.c
  types:
    enum:
    - enumerators:
      - name: text_cmd_shutdown
        value: '0'
      - name: text_cmd_slabs
      - name: text_cmd_cache_memlimit
      - name: text_cmd_debugitem
      - name: text_cmd_debugtime
      - name: text_cmd_misbehave
      - name: text_cmd_flush_all
      - name: text_cmd_lru_crawler
      - name: text_cmd_verbosity
      - name: text_cmd_lru
      - name: text_cmd_extstore
      - name: text_cmd_final
      - name: text_cmd_refresh_certs
      item_type: enum
      name: text_cmds
      pos:
        line_end: 1471
        line_start: 1451
        source_file: /src/memcached/proto_text.c
    preproc_defs:
    - item_type: preproc_def
      name: _DO_CAS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/memcached/proto_text.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: _NO_CAS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/memcached/proto_text.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: _DO_TOUCH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/memcached/proto_text.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: _NO_TOUCH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/memcached/proto_text.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: COMMAND_TOKEN
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/memcached/proto_text.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SUBCOMMAND_TOKEN
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/memcached/proto_text.c
      type_or_value: '1'
    - item_type: preproc_def
      name: KEY_TOKEN
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/memcached/proto_text.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*s'
        type: char
      - name: func
        type: text_cmd_func
      item_type: struct
      name: text_cmd_entry
      pos:
        line_end: 1449
        line_start: 1446
        source_file: /src/memcached/proto_text.c
    typedefs:
    - item_type: typedef
      name: (*text_cmd_func)(conn *c, mcp_parser_t *pr)
      pos:
        line_end: 1444
        line_start: 1444
        source_file: /src/memcached/proto_text.c
      type: void
    union: []
- function_names:
  - mcp_tls_shutdown
  - mcp_tls_cleanup
  - mcp_tls_handshake
  - mcp_tls_send_validate
  - mcp_tls_read
  source_file: /src/memcached/proxy_tls.h
  types:
    enum:
    - enumerators:
      - name: MCP_TLS_OK
        value: '1'
      - name: MCP_TLS_ERR
        value: '-2'
      - name: MCP_TLS_NEEDIO
        value: '-1'
      item_type: enum
      name: mcp_tls_ret
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/memcached/proxy_tls.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/slabs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLABS_ALLOC_NO_NEWPAGE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/memcached/slabs.h
      type_or_value: '1'
    structs:
    - fields:
      - name: chunks_per_page
        type: unsigned int
      - name: chunk_size
        type: unsigned int
      - name: free_chunks
        type: long int
      - name: total_pages
        type: long int
      item_type: struct
      name: slab_stats_automove
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/memcached/slabs.h
    typedefs:
    - item_type: typedef
      name: (*slabs_cb)(void *arg)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/memcached/slabs.h
      type: int
    union: []
- function_names: []
  source_file: /src/memcached/protocol_binary.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: protocol_binary_request_get
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_request_getq
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_request_getk
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_request_getkq
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_response_getq
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_get
    - item_type: typedef
      name: protocol_binary_response_getk
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_get
    - item_type: typedef
      name: protocol_binary_response_getkq
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_get
    - item_type: typedef
      name: protocol_binary_request_delete
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_response_delete
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_response_flush
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_request_add
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_set
    - item_type: typedef
      name: protocol_binary_request_replace
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_set
    - item_type: typedef
      name: protocol_binary_response_set
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_response_add
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_response_replace
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_request_noop
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_response_noop
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_request_decr
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_incr
    - item_type: typedef
      name: protocol_binary_response_decr
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_incr
    - item_type: typedef
      name: protocol_binary_request_quit
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_response_quit
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_request_append
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_request_prepend
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_response_append
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_response_prepend
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_request_version
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_response_version
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_request_stats
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_no_extras
    - item_type: typedef
      name: protocol_binary_response_stats
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_response_touch
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_no_extras
    - item_type: typedef
      name: protocol_binary_request_gatq
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_gat
    - item_type: typedef
      name: protocol_binary_request_gatk
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_gat
    - item_type: typedef
      name: protocol_binary_request_gatkq
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_gat
    - item_type: typedef
      name: protocol_binary_response_gat
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_get
    - item_type: typedef
      name: protocol_binary_response_gatq
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_get
    - item_type: typedef
      name: protocol_binary_response_gatk
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_get
    - item_type: typedef
      name: protocol_binary_response_gatkq
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_response_get
    - item_type: typedef
      name: protocol_binary_request_rget
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rset
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rsetq
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rappend
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rappendq
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rprepend
      pos:
        line_end: 457
        line_start: 457
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rprependq
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rdelete
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rdeleteq
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rincr
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rincrq
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rdecr
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    - item_type: typedef
      name: protocol_binary_request_rdecrq
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/memcached/protocol_binary.h
      type: protocol_binary_request_rangeop
    union:
    - fields:
      - name: request
        type: "struct {\n            uint8_t magic;\n            uint8_t opcode;\n
          \           uint16_t keylen;\n            uint8_t extlen;\n            uint8_t
          datatype;\n            uint16_t reserved;\n            uint32_t bodylen;\n
          \           uint32_t opaque;\n            uint64_t cas;\n        }"
      - name: bytes[24]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_header
      pos:
        line_end: 163
        line_start: 150
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: response
        type: "struct {\n            uint8_t magic;\n            uint8_t opcode;\n
          \           uint16_t keylen;\n            uint8_t extlen;\n            uint8_t
          datatype;\n            uint16_t status;\n            uint32_t bodylen;\n
          \           uint32_t opaque;\n            uint64_t cas;\n        }"
      - name: bytes[24]
        type: uint8_t
      item_type: union
      name: protocol_binary_response_header
      pos:
        line_end: 182
        line_start: 169
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_request_header header;\n        }"
      - name: bytes[sizeof(protocol_binary_request_header)]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_no_extras
      pos:
        line_end: 192
        line_start: 187
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_response_header header;\n        }"
      - name: bytes[sizeof(protocol_binary_response_header)]
        type: uint8_t
      item_type: union
      name: protocol_binary_response_no_extras
      pos:
        line_end: 202
        line_start: 197
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_response_header header;\n            struct
          {\n                uint32_t flags;\n            } body;\n        }"
      - name: bytes[sizeof(protocol_binary_response_header) + 4]
        type: uint8_t
      item_type: union
      name: protocol_binary_response_get
      pos:
        line_end: 226
        line_start: 218
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_request_header header;\n            struct
          {\n                uint32_t expiration;\n            } body;\n        }"
      - name: bytes[sizeof(protocol_binary_request_header) + 4]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_flush
      pos:
        line_end: 258
        line_start: 250
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_request_header header;\n            struct
          {\n                uint32_t flags;\n                uint32_t expiration;\n
          \           } body;\n        }"
      - name: bytes[sizeof(protocol_binary_request_header) + 8]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_set
      pos:
        line_end: 279
        line_start: 270
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_request_header header;\n            struct
          {\n                uint64_t delta;\n                uint64_t initial;\n
          \               uint32_t expiration;\n            } body;\n        }"
      - name: bytes[sizeof(protocol_binary_request_header) + 20]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_incr
      pos:
        line_end: 318
        line_start: 308
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_response_header header;\n            struct
          {\n                uint64_t value;\n            } body;\n        }"
      - name: bytes[sizeof(protocol_binary_response_header) + 8]
        type: uint8_t
      item_type: union
      name: protocol_binary_response_incr
      pos:
        line_end: 334
        line_start: 326
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_request_header header;\n            struct
          {\n                uint32_t expiration;\n            } body;\n        }"
      - name: bytes[sizeof(protocol_binary_request_header) + 4]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_touch
      pos:
        line_end: 399
        line_start: 391
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_request_header header;\n            struct
          {\n                uint32_t expiration;\n            } body;\n        }"
      - name: bytes[sizeof(protocol_binary_request_header) + 4]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_gat
      pos:
        line_end: 417
        line_start: 409
        source_file: /src/memcached/protocol_binary.h
    - fields:
      - name: message
        type: "struct {\n            protocol_binary_response_header header;\n            struct
          {\n                uint16_t size;\n                uint8_t  reserved;\n
          \               uint8_t  flags;\n                uint32_t max_results;\n
          \           } body;\n        }"
      - name: bytes[sizeof(protocol_binary_request_header) + 4]
        type: uint8_t
      item_type: union
      name: protocol_binary_request_rangeop
      pos:
        line_end: 450
        line_start: 439
        source_file: /src/memcached/protocol_binary.h
- function_names:
  - stats_prefix_init
  - stats_prefix_clear
  - stats_prefix_find
  - stats_prefix_record_get
  - stats_prefix_record_delete
  - stats_prefix_record_set
  - stats_prefix_dump
  source_file: /src/memcached/stats_prefix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _msghandler
  - _run_pcall
  - _dump_helper
  - _load_helper
  - proxy_start_reload
  - proxy_first_confload
  - _proxy_manager_thread
  - proxy_config_stats_prep
  - proxy_config_reload
  - proxy_run_crons
  - _proxy_config_thread
  - _start_proxy_config_threads
  - proxy_init_startfiles
  - proxy_load_files
  - proxy_load_config
  - _copy_pool
  - _copy_config_table
  - proxy_worker_reload
  - proxy_thread_loadconf
  source_file: /src/memcached/proxy_config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCP_LUAFILE_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/memcached/proxy_config.c
      type_or_value: '16384'
    structs:
    - fields:
      - name: size
        type: size_t
      - name: used
        type: size_t
      - name: loaded
        type: bool
      - name: '*buf'
        type: char
      - name: '*fname'
        type: char
      - name: '*next'
        type: struct _mcp_luafile
      item_type: struct
      name: _mcp_luafile
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/memcached/proxy_config.c
    typedefs: []
    union: []
- function_names:
  - _beconn_send_validate
  - _proxy_beconn_checkconnect
  - proxy_choose_beconn
  - _proxy_event_handler_dequeue
  - _cleanup_backend
  - _setup_backend
  - proxy_event_beconn
  - _proxy_flush_backend_queue
  - proxy_run_backend_queue
  - STAILQ_FOREACH
  - proxy_event_handler
  - proxy_event_thread
  - _set_main_event
  - _stop_main_event
  - _start_write_event
  - _stop_write_event
  - _start_timeout_event
  - _stop_timeout_event
  - _drive_machine_next
  - proxy_backend_drive_machine
  - _backend_reconnect
  - proxy_backend_retry_handler
  - _backend_reschedule
  - _backend_flap_check
  - _reset_bad_backend
  - _prep_pending_write
  - _post_pending_write
  - _flush_pending_write
  - _flush_pending_tls_write
  - proxy_bevalidate_tls_handler
  - proxy_beconn_tls_handler
  - proxy_beconn_handler
  - proxy_backend_tls_handler
  - proxy_backend_handler
  - proxy_init_event_thread
  source_file: /src/memcached/proxy_network.c
  types:
    enum:
    - enumerators:
      - name: P_BE_FAIL_TIMEOUT
        value: '0'
      - name: P_BE_FAIL_DISCONNECTED
      - name: P_BE_FAIL_READVALIDATE
      - name: P_BE_FAIL_CONNECTING
      - name: P_BE_FAIL_CONNTIMEOUT
      - name: P_BE_FAIL_BADVALIDATE
      - name: P_BE_FAIL_WRITING
      - name: P_BE_FAIL_READING
      - name: P_BE_FAIL_PARSING
      - name: P_BE_FAIL_CLOSED
      - name: P_BE_FAIL_TRAILINGDATA
      - name: P_BE_FAIL_INVALIDPROTOCOL
      - name: P_BE_FAIL_UNHANDLEDRES
      - name: P_BE_FAIL_OOM
      - name: P_BE_FAIL_ENDSYNC
      item_type: enum
      name: proxy_be_failures
      pos:
        line_end: 22
        line_start: 6
        source_file: /src/memcached/proxy_network.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _process_request_key
  - _process_request_meta
  - _process_request_mset
  - _process_request_gat
  - _process_request_noreply
  - _process_request_storage
  - _process_request_simple
  - _process_request_unknown
  - process_request
  - mc_prcmp
  - mc_toktou32
  - mc_tokto32
  - mc_toktod
  - pout_string
  - pout_errstring
  - mc_parse_exptime
  - _process_token_len
  - _store_item_copy_from_buf
  - _meta_flag_preparse
  - make_ascii_get_suffix
  - process_get_cmd
  - process_update_cmd_start
  - process_update_cmd
  - process_arithmetic_cmd
  - process_delete_cmd
  - process_touch_cmd
  - process_mget_cmd
  - process_mset_cmd_start
  - process_mset_cmd
  - process_mdelete_cmd
  - process_marithmetic_cmd
  source_file: /src/memcached/proto_parser.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARSER_MAXLEN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/memcached/proto_parser.c
      type_or_value: USHRT_MAX-1
    - item_type: preproc_def
      name: NOREPLYSTR
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/memcached/proto_parser.c
      type_or_value: '"noreply"'
    - item_type: preproc_def
      name: NOREPLYLEN
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/memcached/proto_parser.c
      type_or_value: sizeof(NOREPLYSTR)-1
    structs:
    - fields:
      - name: has_error
        type: unsigned int
      - name: no_update
        type: unsigned int
      - name: locked
        type: unsigned int
      - name: vivify
        type: unsigned int
      - name: la
        type: unsigned int
      - name: hit
        type: unsigned int
      - name: value
        type: unsigned int
      - name: set_stale
        type: unsigned int
      - name: no_reply
        type: unsigned int
      - name: has_cas
        type: unsigned int
      - name: has_cas_in
        type: unsigned int
      - name: new_ttl
        type: unsigned int
      - name: key_binary
        type: unsigned int
      - name: remove_val
        type: unsigned int
      - name: mode
        type: char
      - name: key_len
        type: uint8_t
      - name: exptime
        type: rel_time_t
      - name: autoviv_exptime
        type: rel_time_t
      - name: recache_time
        type: rel_time_t
      - name: client_flags
        type: client_flags_t
      - name: '*key'
        type: char
      - name: req_cas_id
        type: uint64_t
      - name: cas_id_in
        type: uint64_t
      - name: delta
        type: uint64_t
      - name: initial
        type: uint64_t
      item_type: struct
      name: _meta_flags
      pos:
        line_end: 37
        line_start: 11
        source_file: /src/memcached/proto_parser.c
    typedefs: []
    union: []
- function_names:
  - handle_syssig
  - setup_privilege_violations_handler
  - drop_privileges
  - drop_worker_privileges
  source_file: /src/memcached/linux_priv.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KILL_MSG_STR
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/memcached/linux_priv.c
      type_or_value: "\"Seccomp policy failure. Caught syscall ???. This is \" \\\n
        \   \"either an exploit attempt, or your system is not supported yet.\\n\""
    - item_type: preproc_def
      name: DENY_ACTION
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/memcached/linux_priv.c
      type_or_value: SCMP_ACT_TRAP
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/proto_parser_type.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*request'
        type: char
      - name: '*vbuf'
        type: void
      - name: tok
        type: mcmc_tokenizer_t
      - name: command
        type: uint8_t
      - name: cmd_type
        type: uint8_t
      - name: keytoken
        type: uint8_t
      - name: reqlen
        type: uint32_t
      - name: vlen
        type: int
      - name: klen
        type: uint32_t
      - name: noreply
        type: bool
      item_type: struct
      name: mcp_parser_s
      pos:
        line_end: 21
        line_start: 10
        source_file: /src/memcached/proto_parser_type.h
    typedefs:
    - item_type: typedef
      name: mcp_parser_t
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/memcached/proto_parser_type.h
      type: mcp_parser_s
    union: []
- function_names: []
  source_file: /src/memcached/hash.h
  types:
    enum:
    - enumerators:
      - name: JENKINS_HASH
        value: '0'
      - name: MURMUR3_HASH
      - name: XXH3_HASH
      item_type: enum
      name: hashfunc_type
      pos:
        line_end: 8
        line_start: 6
        source_file: /src/memcached/hash.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*hash_func)(const void *key, size_t length)
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/memcached/hash.h
      type: uint32_t
    union: []
- function_names:
  - drop_privileges
  - setup_privilege_violations_handler
  source_file: /src/memcached/darwin_priv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - authfile_load
  - authfile_check
  source_file: /src/memcached/authfile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ENTRY_LEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/memcached/authfile.c
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_ENTRIES
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/memcached/authfile.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*user'
        type: char
      - name: ulen
        type: size_t
      - name: '*pass'
        type: char
      - name: plen
        type: size_t
      item_type: struct
      name: auth_entry
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/memcached/authfile.c
    typedefs: []
    union: []
- function_names:
  - ketama_md5_digest
  - ketama_compare
  - ketama_key_hasher
  - ketama_get_server
  - _add_server_default
  - _add_server_ketama
  - _add_server_twemproxy
  - _add_server_evcache
  - ketama_new
  - mcplib_open_dist_ring_hash
  source_file: /src/memcached/proxy_ring_hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BUCKET_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/memcached/proxy_ring_hash.c
      type_or_value: '160'
    - item_type: preproc_def
      name: MODE_DEFAULT
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/memcached/proxy_ring_hash.c
      type_or_value: 0 // uses xxhash
    - item_type: preproc_def
      name: MODE_KETAMA
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/memcached/proxy_ring_hash.c
      type_or_value: 1 // uses md5
    - item_type: preproc_def
      name: MODE_TWEMPROXY
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/memcached/proxy_ring_hash.c
      type_or_value: 2 // technically "libmemcached" ?
    - item_type: preproc_def
      name: MODE_EVCACHE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/memcached/proxy_ring_hash.c
      type_or_value: 3 // not sure why this has a funny string init.
    - item_type: preproc_def
      name: PARTS
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/memcached/proxy_ring_hash.c
      type_or_value: '2'
    structs:
    - fields:
      - name: point
        type: unsigned int
      - name: id
        type: unsigned int
      item_type: struct
      name: cpoint
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/memcached/proxy_ring_hash.c
    - fields:
      - name: phc
        type: struct proxy_hash_caller
      - name: total_buckets
        type: unsigned int
      - name: continuum[]
        type: cpoint
      item_type: struct
      name: ketama_t
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/memcached/proxy_ring_hash.c
    typedefs: []
    union: []
- function_names:
  - init_sasl
  - sasl_dispose
  - sasl_server_new
  - sasl_listmech
  - sasl_server_start
  - sasl_server_step
  - sasl_getprop
  source_file: /src/memcached/sasl_defs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SASL_DEFS_H
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/memcached/sasl_defs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_SASL_MECH_LEN
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/memcached/sasl_defs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SASL_OK
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/memcached/sasl_defs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SASL_CONTINUE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/memcached/sasl_defs.h
      type_or_value: '-1'
    structs: []
    typedefs:
    - item_type: typedef
      name: '* sasl_conn_t'
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/memcached/sasl_defs.h
      type: void
    union: []
- function_names:
  - dd
  - out2
  - out1
  - digits
  - itoa
  - itoa_u32
  - itoa_32
  - itoa_u64
  - itoa_64
  source_file: /src/memcached/itoa_ljust.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_LOGGER
  - LOGGER_LOG
  source_file: /src/memcached/logger.h
  types:
    enum:
    - enumerators:
      - name: LOGGER_ASCII_CMD
        value: '0'
      - name: LOGGER_ITEM_STORE
      - name: LOGGER_CONNECTION_CLOSE
      - name: LOGGER_EXTSTORE_WRITE
      - name: LOGGER_COMPACT_READ_START
      - name: LOGGER_PROXY_REQ
      - name: LOGGER_ITEM_GET
      - name: LOGGER_CONNECTION_NEW
      - name: LOGGER_COMPACT_ABORT
      - name: LOGGER_COMPACT_FRAGINFO
      - name: LOGGER_PROXY_CONFIG
      - name: LOGGER_DELETIONS
      - name: LOGGER_PROXY_USER
      - name: LOGGER_EVICTION
      - name: LOGGER_SLAB_MOVE
      - name: LOGGER_CONNECTION_TLSERROR
      - name: LOGGER_COMPACT_END
      - name: LOGGER_COMPACT_START
      - name: LOGGER_PROXY_ERROR
      - name: LOGGER_CRAWLER_STATUS
      - name: LOGGER_CONNECTION_ERROR
      - name: LOGGER_COMPACT_READ_END
      - name: LOGGER_PROXY_RAW
      - name: LOGGER_PROXY_BE_ERROR
      item_type: enum
      name: log_entry_type
      pos:
        line_end: 44
        line_start: 15
        source_file: /src/memcached/logger.h
    - enumerators:
      - name: LOGGER_RET_OK
        value: '0'
      - name: LOGGER_RET_ERR
      - name: LOGGER_RET_NOSPACE
      item_type: enum
      name: logger_ret_type
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/memcached/logger.h
    - enumerators:
      - name: LOGGER_PARSE_ENTRY_OK
        value: '0'
      - name: LOGGER_PARSE_ENTRY_FULLBUF
      - name: LOGGER_PARSE_ENTRY_FAILED
      item_type: enum
      name: logger_parse_entry_ret
      pos:
        line_end: 56
        line_start: 52
        source_file: /src/memcached/logger.h
    - enumerators:
      - name: LOGGER_WATCHER_STDERR
        value: '0'
      - name: LOGGER_WATCHER_CLIENT
        value: '1'
      item_type: enum
      name: logger_watcher_type
      pos:
        line_end: 200
        line_start: 197
        source_file: /src/memcached/logger.h
    - enumerators:
      - name: LOGGER_ADD_WATCHER_TOO_MANY
        value: '0'
      - name: LOGGER_ADD_WATCHER_FAILED
      - name: LOGGER_ADD_WATCHER_OK
      item_type: enum
      name: logger_add_watcher_ret
      pos:
        line_end: 246
        line_start: 242
        source_file: /src/memcached/logger.h
    preproc_defs:
    - item_type: preproc_def
      name: LOGGER_BUF_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/memcached/logger.h
      type_or_value: 1024 * 64
    - item_type: preproc_def
      name: LOGGER_WATCHER_BUF_SIZE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/memcached/logger.h
      type_or_value: 1024 * 256
    - item_type: preproc_def
      name: LOGGER_ENTRY_MAX_SIZE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/memcached/logger.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: LOG_SYSEVENTS
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: LOG_FETCHERS
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<2) '
    - item_type: preproc_def
      name: LOG_MUTATIONS
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<3) '
    - item_type: preproc_def
      name: LOG_SYSERRORS
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<4) '
    - item_type: preproc_def
      name: LOG_CONNEVENTS
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<5) '
    - item_type: preproc_def
      name: LOG_EVICTIONS
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<6) '
    - item_type: preproc_def
      name: LOG_STRICT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<7) '
    - item_type: preproc_def
      name: LOG_RAWCMDS
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<9) '
    - item_type: preproc_def
      name: LOG_PROXYREQS
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<10) '
    - item_type: preproc_def
      name: LOG_PROXYEVENTS
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<11) '
    - item_type: preproc_def
      name: LOG_PROXYUSER
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<12) '
    - item_type: preproc_def
      name: LOG_DELETIONS
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/memcached/logger.h
      type_or_value: '(1<<13) '
    structs:
    - fields:
      - name: reqlen
        type: int
      - name: eflags
        type: uint16_t
      - name: log_cb
        type: entry_log_cb
      - name: parse_cb
        type: entry_parse_cb
      - name: '*format'
        type: char
      item_type: struct
      name: _entry_details
      pos:
        line_end: 70
        line_start: 64
        source_file: /src/memcached/logger.h
    - fields:
      - name: exptime
        type: long long int
      - name: nbytes
        type: int
      - name: latime
        type: uint32_t
      - name: it_flags
        type: uint16_t
      - name: nkey
        type: uint8_t
      - name: clsid
        type: uint8_t
      - name: key[]
        type: char
      item_type: struct
      name: logentry_eviction
      pos:
        line_end: 81
        line_start: 73
        source_file: /src/memcached/logger.h
    - fields:
      - name: exptime
        type: long long int
      - name: latime
        type: uint32_t
      - name: it_flags
        type: uint16_t
      - name: nkey
        type: uint8_t
      - name: clsid
        type: uint8_t
      - name: bucket
        type: uint8_t
      - name: key[]
        type: char
      item_type: struct
      name: logentry_ext_write
      pos:
        line_end: 91
        line_start: 83
        source_file: /src/memcached/logger.h
    - fields:
      - name: was_found
        type: uint8_t
      - name: nkey
        type: uint8_t
      - name: clsid
        type: uint8_t
      - name: nbytes
        type: int
      - name: sfd
        type: int
      - name: key[]
        type: char
      item_type: struct
      name: logentry_item_get
      pos:
        line_end: 100
        line_start: 93
        source_file: /src/memcached/logger.h
    - fields:
      - name: status
        type: int
      - name: cmd
        type: int
      - name: ttl
        type: rel_time_t
      - name: nkey
        type: uint8_t
      - name: clsid
        type: uint8_t
      - name: nbytes
        type: int
      - name: sfd
        type: int
      - name: key[]
        type: char
      item_type: struct
      name: logentry_item_store
      pos:
        line_end: 111
        line_start: 102
        source_file: /src/memcached/logger.h
    - fields:
      - name: nbytes
        type: int
      - name: cmd
        type: int
      - name: nkey
        type: uint8_t
      - name: clsid
        type: uint8_t
      - name: key[]
        type: char
      item_type: struct
      name: logentry_deletion
      pos:
        line_end: 119
        line_start: 113
        source_file: /src/memcached/logger.h
    - fields:
      - name: transport
        type: int
      - name: reason
        type: int
      - name: sfd
        type: int
      - name: addr
        type: struct sockaddr_in6
      item_type: struct
      name: logentry_conn_event
      pos:
        line_end: 126
        line_start: 121
        source_file: /src/memcached/logger.h
    - fields:
      - name: type
        type: unsigned short
      - name: code
        type: unsigned short
      - name: flag
        type: uint8_t
      - name: status
        type: int
      - name: conn_fd
        type: int
      - name: reqlen
        type: uint32_t
      - name: dlen
        type: size_t
      - name: be_namelen
        type: size_t
      - name: be_portlen
        type: size_t
      - name: elapsed
        type: long
      - name: data[]
        type: char
      item_type: struct
      name: logentry_proxy_req
      pos:
        line_end: 140
        line_start: 128
        source_file: /src/memcached/logger.h
    - fields:
      - name: errlen
        type: size_t
      - name: be_namelen
        type: size_t
      - name: be_portlen
        type: size_t
      - name: be_labellen
        type: size_t
      - name: be_rbuflen
        type: size_t
      - name: be_depth
        type: int
      - name: retry
        type: int
      - name: data[]
        type: char
      item_type: struct
      name: logentry_proxy_errbe
      pos:
        line_end: 151
        line_start: 142
        source_file: /src/memcached/logger.h
    - fields:
      - name: event
        type: enum log_entry_type
      - name: pad
        type: uint8_t
      - name: eflags
        type: uint16_t
      - name: gid
        type: uint64_t
      - name: tv
        type: struct timeval
      - name: size
        type: int
      - name: data[]
        type: "union {\n        char end;\n    }"
      item_type: struct
      name: _logentry
      pos:
        line_end: 168
        line_start: 158
        source_file: /src/memcached/logger.h
    - fields:
      - name: '*prev'
        type: struct _logger
      - name: '*next'
        type: struct _logger
      - name: mutex
        type: pthread_mutex_t
      - name: written
        type: uint64_t
      - name: dropped
        type: uint64_t
      - name: blocked
        type: uint64_t
      - name: fetcher_ratio
        type: uint16_t
      - name: mutation_ratio
        type: uint16_t
      - name: eflags
        type: uint16_t
      - name: '*buf'
        type: bipbuf_t
      - name: '*entry_map'
        type: entry_details
      item_type: struct
      name: _logger
      pos:
        line_end: 195
        line_start: 183
        source_file: /src/memcached/logger.h
    - fields:
      - name: '*c'
        type: void
      - name: sfd
        type: int
      - name: id
        type: int
      - name: skipped
        type: uint64_t
      - name: min_gid
        type: uint64_t
      - name: failed_flush
        type: bool
      - name: t
        type: enum logger_watcher_type
      - name: eflags
        type: uint16_t
      - name: '*buf'
        type: bipbuf_t
      item_type: struct
      name: logger_watcher
      pos:
        line_end: 212
        line_start: 202
        source_file: /src/memcached/logger.h
    - fields:
      - name: worker_dropped
        type: uint64_t
      - name: worker_written
        type: uint64_t
      - name: watcher_skipped
        type: uint64_t
      - name: watcher_sent
        type: uint64_t
      - name: watcher_count
        type: uint64_t
      item_type: struct
      name: logger_stats
      pos:
        line_end: 221
        line_start: 215
        source_file: /src/memcached/logger.h
    typedefs:
    - item_type: typedef
      name: rel_time_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/memcached/logger.h
      type: unsigned int
    - item_type: typedef
      name: logentry
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/memcached/logger.h
      type: _logentry
    - item_type: typedef
      name: entry_details
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/memcached/logger.h
      type: _entry_details
    - item_type: typedef
      name: (*entry_log_cb)(logentry *e, const entry_details *d, const void *entry,
        va_list ap)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/memcached/logger.h
      type: void
    - item_type: typedef
      name: (*entry_parse_cb)(logentry *e, char *scratch)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/memcached/logger.h
      type: int
    union: []
- function_names:
  - tcp_read
  - tcp_sendmsg
  - tcp_write
  - maxconns_handler
  - realtime
  - stats_init
  - stats_reset
  - settings_init
  - conn_timeout_thread
  - start_conn_timeout_thread
  - stop_conn_timeout_thread
  - rbuf_release
  - rbuf_alloc
  - rbuf_switch_to_malloc
  - conn_init
  - prot_text
  - conn_close_idle
  - _conn_event_readd
  - conn_worker_readd
  - thread_io_queue_add
  - thread_io_queue_get
  - thread_io_queue_submit
  - conn_io_queue_return
  - conn_new
  - conn_release_items
  - conn_cleanup
  - conn_free
  - conn_close
  - conn_close_all
  - state_text
  - conn_set_state
  - resp_reset
  - resp_add_iov
  - resp_add_chunked_iov
  - resp_allocate
  - resp_free
  - resp_start
  - resp_start_unlinked
  - resp_finish
  - resp_has_stack
  - out_string
  - out_errstring
  - out_of_memory
  - append_bin_stats
  - append_ascii_stats
  - grow_stats_buf
  - append_stats
  - reset_cmd_handler
  - complete_nread
  - _store_item_copy_chunks
  - _store_item_copy_data
  - do_store_item
  - write_and_free
  - append_stat
  - server_stats
  - process_stat_settings
  - nz_strcmp
  - get_stats
  - get_conn_text
  - conn_to_str
  - process_stats_conns
  - limited_get
  - limited_get_locked
  - try_read_command_negotiate
  - try_read_command_udp
  - try_read_udp
  - try_read_network
  - update_event
  - do_accept_new_conns
  - _transmit_pre
  - _transmit_post
  - transmit
  - build_udp_header
  - transmit_udp
  - read_into_chunked_item
  - drive_machine
  - event_handler
  - new_socket
  - server_socket
  - server_sockets
  - new_socket_unix
  - server_socket_unix
  - server_socket_unix
  - clock_handler
  - flag_enabled_disabled
  - verify_default
  - usage
  - usage_license
  - save_pid
  - remove_pidfile
  - sig_handler
  - sighup_handler
  - sig_usrhandler
  - enable_large_pages
  - sanitycheck
  - _parse_slab_sizes
  - _mc_meta_save_cb
  - _mc_meta_load_cb
  source_file: /src/memcached/memcached.c
  types:
    enum:
    - enumerators:
      - name: READ_DATA_RECEIVED
      - name: READ_NO_DATA_RECEIVED
      - name: READ_ERROR
      - name: READ_MEMORY_ERROR
      item_type: enum
      name: try_read_result
      pos:
        line_end: 77
        line_start: 72
        source_file: /src/memcached/memcached.c
    - enumerators:
      - name: TRANSMIT_COMPLETE
      - name: TRANSMIT_HARD_ERROR
      - name: TRANSMIT_SOFT_ERROR
      - name: TRANSMIT_INCOMPLETE
      item_type: enum
      name: transmit_result
      pos:
        line_end: 126
        line_start: 121
        source_file: /src/memcached/memcached.c
    - enumerators:
      - name: CAS_NONE
      - name: CAS_MATCH
      - name: CAS_STALE
      - name: CAS_BADVAL
      - name: CAS_MISS
      item_type: enum
      name: cas_result
      pos:
        line_end: 1551
        line_start: 1551
        source_file: /src/memcached/memcached.c
    preproc_defs:
    - item_type: preproc_def
      name: CONNS_PER_SLICE
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/memcached/memcached.c
      type_or_value: '100'
    - item_type: preproc_def
      name: IT_REFCOUNT_LIMIT
      pos:
        line_end: 2180
        line_start: 2179
        source_file: /src/memcached/memcached.c
      type_or_value: '60000'
    - item_type: preproc_def
      name: TRANSMIT_ONE_RESP
      pos:
        line_end: 2548
        line_start: 2547
        source_file: /src/memcached/memcached.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: TRANSMIT_ALL_RESP
      pos:
        line_end: 2549
        line_start: 2548
        source_file: /src/memcached/memcached.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: RESTART_REQUIRED_META
      pos:
        line_end: 4483
        line_start: 4482
        source_file: /src/memcached/memcached.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*mmap_base'
        type: void
      - name: old_base
        type: uint64_t
      - name: '*slab_config'
        type: char
      - name: time_delta
        type: int64_t
      - name: process_started
        type: uint64_t
      - name: current_time
        type: uint32_t
      item_type: struct
      name: _mc_meta_data
      pos:
        line_end: 4416
        line_start: 4409
        source_file: /src/memcached/memcached.c
    typedefs: []
    union:
    - fields:
      - name: in
        type: struct sockaddr_in
      - name: in6
        type: struct sockaddr_in6
      item_type: union
      name: my_sockaddr
      pos:
        line_end: 3552
        line_start: 3549
        source_file: /src/memcached/memcached.c
- function_names:
  - rot
  - mix
  - final
  - jenkins_hash
  - jenkins_hash
  source_file: /src/memcached/jenkins_hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LITTLE_ENDIAN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/memcached/jenkins_hash.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HASH_BIG_ENDIAN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/memcached/jenkins_hash.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HASH_LITTLE_ENDIAN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/memcached/jenkins_hash.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HASH_BIG_ENDIAN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/memcached/jenkins_hash.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HASH_LITTLE_ENDIAN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/memcached/jenkins_hash.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HASH_BIG_ENDIAN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/memcached/jenkins_hash.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*ptr'
        type: void
      - name: i
        type: size_t
      item_type: union
      name: u
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/memcached/jenkins_hash.c
    - fields:
      - name: '*ptr'
        type: void
      - name: i
        type: size_t
      item_type: union
      name: u
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/memcached/jenkins_hash.c
- function_names:
  - mcplib_add_stat
  - mcplib_stat
  source_file: /src/memcached/proxy_ustats.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/authfile.h
  types:
    enum:
    - enumerators:
      - name: AUTHFILE_OK
        value: '0'
      - name: AUTHFILE_OOM
      - name: AUTHFILE_STATFAIL
      - name: AUTHFILE_MALFORMED
      - name: AUTHFILE_OPENFAIL
      item_type: enum
      name: authfile_ret
      pos:
        line_end: 9
        line_start: 3
        source_file: /src/memcached/authfile.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __gcc_attribute__
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/memcached/util.h
      type_or_value: __attribute__
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcplib_open_hash_xxhash
  source_file: /src/memcached/proxy_xxhash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROTL32
  - BIG_CONSTANT
  - rotl32
  - ROTL32
  - BIG_CONSTANT
  - getblock32
  - uint32_t
  - MurmurHash3_x86_32
  source_file: /src/memcached/murmur3_hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FORCE_INLINE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/memcached/murmur3_hash.c
      type_or_value: __forceinline
    - item_type: preproc_def
      name: FORCE_INLINE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/memcached/murmur3_hash.c
      type_or_value: inline __attribute__((always_inline))
    structs: []
    typedefs: []
    union: []
- function_names:
  - _mcplib_append_stats
  - _mcplib_append_section_stats
  - mcplib_server_stats
  - _mcplib_backend_get_waittime
  - mcplib_register_cron
  - mcplib_schedule_config_reload
  - mcplib_time_real_millis
  - mcplib_time_mono_millis
  - mcplib_backend_wrap_gc
  - mcplib_backend_gc
  - _mcplib_backend_log
  - mcplib_backend
  - _mcplib_backend_checkcache
  - _mcplib_make_backendconn
  - mcplib_pool_gc
  - mcp_key_hash_filter_stop
  - mcp_key_hash_filter_tag
  - _mcplib_pool_dist
  - _mcplib_pool_make_be_loop
  - _mcplib_pool_make_be
  - mcplib_pool
  - mcplib_pool_proxy_gc
  - mcplib_pool_proxy_call_helper
  - mcplib_backend_use_iothread
  - mcplib_backend_use_tls
  - mcplib_init_tls
  - mcplib_tcp_keepalive
  - mcplib_backend_failure_limit
  - mcplib_backend_depth_limit
  - mcplib_backend_connect_timeout
  - mcplib_backend_retry_waittime
  - mcplib_backend_retry_timeout
  - mcplib_backend_read_timeout
  - mcplib_backend_flap_time
  - mcplib_backend_flap_backoff_ramp
  - mcplib_backend_flap_backoff_max
  - mcplib_luagc_ratio
  - mcplib_stat_limit
  - mcplib_active_req_limit
  - mcplib_buffer_memory_limit
  - mcplib_attach
  - mcplib_ct_log
  - mcplib_log
  - mcplib_log_req
  - _mcp_rotl
  - _mcp_nextrand
  - mcplib_rqu_log
  - mcplib_log_reqsample
  - proxy_register_defines
  - X
  - Y
  - proxy_register_startarg
  - proxy_register_libs
  source_file: /src/memcached/proxy_lua.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*L'
        type: lua_State
      item_type: struct
      name: _mcplib_statctx_s
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/memcached/proxy_lua.c
    typedefs: []
    union: []
- function_names:
  - mut_step_c
  - mut_step_i
  - mut_step_r
  - mut_step_n
  - res_buf
  - _mut_check_idx
  - _mut_check_strlen
  - _mut_check_flag
  - _mut_init_flag
  - _mut_checkudata
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mut_step_c
  - mut_step_i
  - mut_step_n
  - mut_step_r
  - mcp_mutator_steptype
  - mcp_mutator_new
  - _mcp_mut_run_total
  - _mcp_mut_run_assemble
  - mcp_mut_run
  - mcplib_req_mutator_new
  - mcplib_res_mutator_new
  - mcplib_mutator_gc
  - mcplib_mutator_call
  source_file: /src/memcached/proxy_mutator.c
  types:
    enum:
    - enumerators:
      - name: MUT_REQ
        value: '1'
      - name: MUT_RES
      item_type: enum
      name: mcp_mut_type
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/memcached/proxy_mutator.c
    - enumerators:
      - name: mcp_mut_step_none
        value: '0'
      - name: mcp_mut_step_keycopy
      - name: mcp_mut_step_keyset
      - name: mcp_mut_step_cmdcopy
      - name: mcp_mut_step_cmdset
      - name: mcp_mut_step_resnull
      - name: mcp_mut_step_rescodeset
      - name: mcp_mut_step_rescodecopy
      - name: mcp_mut_step_reserr
      - name: mcp_mut_step_flagset
      - name: mcp_mut_step_flagcopyall
      - name: mcp_mut_step_valcopy
      - name: mcp_mut_step_final
      - name: mcp_mut_step_flagcopy
      item_type: enum
      name: mcp_mut_steptype
      pos:
        line_end: 37
        line_start: 22
        source_file: /src/memcached/proxy_mutator.c
    preproc_defs:
    - item_type: preproc_def
      name: MIN_BUF_SPACE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/memcached/proxy_mutator.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RESERR_ERROR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/memcached/proxy_mutator.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RESERR_ERROR_STR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/memcached/proxy_mutator.c
      type_or_value: '"ERROR"'
    - item_type: preproc_def
      name: RESERR_CLIENT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/memcached/proxy_mutator.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RESERR_CLIENT_STR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/memcached/proxy_mutator.c
      type_or_value: '"CLIENT_ERROR"'
    - item_type: preproc_def
      name: RESERR_SERVER
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/memcached/proxy_mutator.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RESERR_SERVER_STR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/memcached/proxy_mutator.c
      type_or_value: '"SERVER_ERROR"'
    structs:
    - fields:
      - name: '*s'
        type: char
      - name: c
        type: mcp_mut_c
      - name: i
        type: mcp_mut_i
      - name: n
        type: mcp_mut_n
      - name: r
        type: mcp_mut_r
      - name: t
        type: unsigned int
      - name: rc
        type: int
      item_type: struct
      name: mcp_mut_entry
      pos:
        line_end: 60
        line_start: 52
        source_file: /src/memcached/proxy_mutator.c
    - fields:
      - name: str
        type: unsigned int
      - name: len
        type: unsigned int
      item_type: struct
      name: mcp_mut_string
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/memcached/proxy_mutator.c
    - fields:
      - name: bit
        type: uint64_t
      - name: f
        type: char
      item_type: struct
      name: mcp_mut_flag
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/memcached/proxy_mutator.c
    - fields:
      - name: flag
        type: struct mcp_mut_flag
      - name: str
        type: struct mcp_mut_string
      item_type: struct
      name: mcp_mut_flagval
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/memcached/proxy_mutator.c
    - fields:
      - name: type
        type: enum mcp_mut_steptype
      - name: idx
        type: unsigned int
      - name: n
        type: mcp_mut_n
      - name: r
        type: mcp_mut_r
      - name: c
        type: "union {\n        struct mcp_mut_string string;\n        struct mcp_mut_flag
          flag;\n        struct mcp_mut_flagval flagval;\n    }"
      item_type: struct
      name: mcp_mut_step
      pos:
        line_end: 94
        line_start: 84
        source_file: /src/memcached/proxy_mutator.c
    - fields:
      - name: type
        type: enum mcp_mut_type
      - name: scount
        type: int
      - name: aused
        type: unsigned int
      - name: rcount
        type: unsigned int
      - name: '*arena'
        type: char
      - name: steps[]
        type: struct mcp_mut_step
      item_type: struct
      name: mcp_mutator
      pos:
        line_end: 105
        line_start: 98
        source_file: /src/memcached/proxy_mutator.c
    - fields:
      - name: '*src'
        type: char
      - name: slen
        type: size_t
      item_type: struct
      name: mcp_mut_part
      pos:
        line_end: 111
        line_start: 108
        source_file: /src/memcached/proxy_mutator.c
    - fields:
      - name: '*L'
        type: lua_State
      - name: '*mut'
        type: struct mcp_mutator
      - name: '*arg'
        type: void
      - name: '*numbuf'
        type: char
      - name: '*d_pos'
        type: char
      - name: '*vbuf'
        type: char
      - name: vlen
        type: size_t
      item_type: struct
      name: mcp_mut_run
      pos:
        line_end: 123
        line_start: 114
        source_file: /src/memcached/proxy_mutator.c
    typedefs:
    - item_type: typedef
      name: (*mcp_mut_c)(lua_State *L, int tidx)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/memcached/proxy_mutator.c
      type: int
    - item_type: typedef
      name: (*mcp_mut_i)(lua_State *L, int tidx, int sc, struct mcp_mutator *mut)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/memcached/proxy_mutator.c
      type: int
    - item_type: typedef
      name: (*mcp_mut_n)(struct mcp_mut_run *run, struct mcp_mut_step *s, struct mcp_mut_part
        *p)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/memcached/proxy_mutator.c
      type: int
    - item_type: typedef
      name: (*mcp_mut_r)(struct mcp_mut_run *run, struct mcp_mut_step *s, struct mcp_mut_part
        *p)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/memcached/proxy_mutator.c
      type: bool
    union: []
- function_names: []
  source_file: /src/memcached/md5.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: count[2]
        type: md5_word_t
      - name: abcd[4]
        type: md5_word_t
      - name: buf[64]
        type: md5_byte_t
      item_type: struct
      name: md5_state_s
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/memcached/md5.h
    typedefs:
    - item_type: typedef
      name: md5_byte_t
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/memcached/md5.h
      type: unsigned char
    - item_type: typedef
      name: md5_word_t
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/memcached/md5.h
      type: unsigned int
    union: []
- function_names: []
  source_file: /src/memcached/slab_automove.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: init
        type: slab_automove_init_func
      - name: free
        type: slab_automove_free_func
      - name: run
        type: slab_automove_run_func
      item_type: struct
      name: slab_automove_reg_t
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/memcached/slab_automove.h
    typedefs:
    - item_type: typedef
      name: '*(*slab_automove_init_func)(struct settings *settings)'
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/memcached/slab_automove.h
      type: void
    - item_type: typedef
      name: (*slab_automove_free_func)(void *arg)
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/memcached/slab_automove.h
      type: void
    - item_type: typedef
      name: (*slab_automove_run_func)(void *arg, int *src, int *dst)
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/memcached/slab_automove.h
      type: void
    union: []
- function_names:
  - mcplib_response_elapsed
  - res_buf
  - mcplib_response_raw_string
  - mcplib_response_ok
  - mcplib_response_hit
  - mcplib_response_vlen
  - mcplib_response_code
  - mcplib_response_line
  - mcplib_response_flag_blank
  - mcp_response_cleanup
  - mcplib_response_gc
  - mcplib_response_close
  source_file: /src/memcached/proxy_result.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - uriencode_init
  - uriencode
  - uriencode_p
  - xisspace
  - safe_strtoull
  - safe_strtoull_hex
  - safe_strtoll
  - safe_strtoul
  - safe_strtol
  - safe_strtod
  - safe_strcpy
  - safe_memcmp
  - vperror
  - mc_swap64
  - ntohll
  - htonll
  - mc_timespec_add
  source_file: /src/memcached/util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NSEC_PER_SEC
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/memcached/util.c
      type_or_value: '1000000000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - slab_automove_init
  - slab_automove_free
  - window_sum
  - slab_automove_run
  source_file: /src/memcached/slab_automove.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_PAGES_FOR_SOURCE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/memcached/slab_automove.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MIN_PAGES_FOR_RECLAIM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/memcached/slab_automove.c
      type_or_value: '2.5'
    structs:
    - fields:
      - name: age
        type: uint64_t
      - name: dirty
        type: uint64_t
      - name: evicted_ratio
        type: float
      - name: evicted_seen
        type: uint64_t
      item_type: struct
      name: window_data
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/memcached/slab_automove.c
    - fields:
      - name: '*window_data'
        type: struct window_data
      - name: window_size
        type: uint32_t
      - name: window_cur
        type: uint32_t
      - name: max_age_ratio
        type: double
      - name: iam_before[MAX_NUMBER_OF_SLAB_CLASSES]
        type: item_stats_automove
      - name: iam_after[MAX_NUMBER_OF_SLAB_CLASSES]
        type: item_stats_automove
      - name: sam_before[MAX_NUMBER_OF_SLAB_CLASSES]
        type: slab_stats_automove
      - name: sam_after[MAX_NUMBER_OF_SLAB_CLASSES]
        type: slab_stats_automove
      item_type: struct
      name: slab_automove
      pos:
        line_end: 31
        line_start: 22
        source_file: /src/memcached/slab_automove.c
    typedefs: []
    union: []
- function_names:
  - XXH_IPREF
  - XXH_CAT
  - XXH_NAME2
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN_MEMBER
  - XXH_ALIGN_MEMBER
  - XXH3_INITSTATE
  - XXH_malloc
  - XXH_free
  - XXH_memcpy
  - XXH_ASSERT
  - XXH_ASSERT
  - XXH_STATIC_ASSERT
  - XXH_COMPILER_GUARD
  - XXH_COMPILER_GUARD
  - XXH_read32
  - XXH_read32
  - XXH_read32
  - XXH_isLittleEndian
  - XXH_HAS_BUILTIN
  - XXH_HAS_BUILTIN
  - XXH_rotl32
  - XXH_rotl64
  - XXH_rotl32
  - XXH_rotl64
  - XXH_swap32
  - XXH_readLE32
  - XXH_readBE32
  - XXH_readLE32
  - XXH_readBE32
  - XXH_readLE32_align
  - XXH_versionNumber
  - XXH32_round
  - XXH32_avalanche
  - XXH_get32bits
  - XXH32_finalize
  - XXH32_endian_align
  - XXH32_hash_t
  - XXH32_state_t* XXH32_createState(void)
  - XXH_errorcode::XXH32_freeState
  - XXH32_copyState
  - XXH_errorcode::XXH32_reset
  - XXH_errorcode::XXH32_update
  - XXH32_hash_t::XXH32_digest
  - XXH32_canonicalFromHash
  - XXH32_hash_t::XXH32_hashFromCanonical
  - XXH_read64
  - XXH_read64
  - XXH_read64
  - XXH_swap64
  - XXH_readLE64
  - XXH_readBE64
  - XXH_readLE64
  - XXH_readBE64
  - XXH_readLE64_align
  - XXH64_round
  - XXH64_mergeRound
  - XXH64_avalanche
  - XXH_get64bits
  - XXH64_finalize
  - XXH64_endian_align
  - XXH64_hash_t
  - XXH64_state_t* XXH64_createState(void)
  - XXH_errorcode::XXH64_freeState
  - XXH64_copyState
  - XXH_errorcode::XXH64_reset
  - XXH_errorcode::XXH64_update
  - XXH64_hash_t::XXH64_digest
  - XXH64_canonicalFromHash
  - XXH64_hash_t::XXH64_hashFromCanonical
  - XXH_likely
  - XXH_unlikely
  - XXH_likely
  - XXH_unlikely
  - XXH_SPLIT_IN_PLACE
  - XXH_SPLIT_IN_PLACE
  - XXH_vec_revb
  - XXH_vec_loadu
  - XXH_vec_mulo
  - XXH_vec_mule
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_mult32to64
  - XXH_mult32to64
  - XXH_mult32to64
  - XXH_mult64to128
  - XXH3_mul128_fold64
  - XXH_xorshift64
  - XXH3_avalanche
  - XXH3_rrmxmx
  - XXH64_hash_t::XXH3_len_1to3_64b
  - XXH64_hash_t::XXH3_len_4to8_64b
  - XXH64_hash_t::XXH3_len_9to16_64b
  - XXH64_hash_t::XXH3_len_0to16_64b
  - XXH3_mix16B
  - XXH64_hash_t::XXH3_len_17to128_64b
  - XXH64_hash_t::XXH3_len_129to240_64b
  - XXH_writeLE64
  - XXH3_accumulate_512_avx512
  - XXH3_scrambleAcc_avx512
  - XXH3_initCustomSecret_avx512
  - XXH3_accumulate_512_avx2
  - XXH3_scrambleAcc_avx2
  - XXH3_initCustomSecret_avx2
  - XXH3_accumulate_512_sse2
  - XXH3_scrambleAcc_sse2
  - XXH3_initCustomSecret_sse2
  - XXH3_accumulate_512_neon
  - XXH3_scrambleAcc_neon
  - XXH3_accumulate_512_vsx
  - XXH3_scrambleAcc_vsx
  - XXH3_accumulate_512_scalar
  - XXH3_scrambleAcc_scalar
  - XXH3_initCustomSecret_scalar
  - XXH3_mix2Accs
  - XXH3_mergeAccs
  - XXH64_hash_t::XXH3_hashLong_64b_internal
  - XXH64_hash_t::XXH3_hashLong_64b_withSecret
  - XXH64_hash_t::XXH3_hashLong_64b_default
  - XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
  - XXH64_hash_t::XXH3_hashLong_64b_withSeed
  - XXH64_hash_t::XXH3_64bits_internal
  - XXH64_hash_t::XXH3_64bits
  - XXH64_hash_t::XXH3_64bits_withSecret
  - XXH64_hash_t::XXH3_64bits_withSeed
  - XXH_alignedMalloc
  - XXH_alignedFree
  - XXH3_state_t* XXH3_createState(void)
  - XXH_errorcode::XXH3_freeState
  - XXH3_copyState
  - XXH3_reset_internal
  - XXH_errorcode::XXH3_64bits_reset
  - XXH_errorcode::XXH3_64bits_reset_withSecret
  - XXH_errorcode::XXH3_64bits_reset_withSeed
  - XXH_errorcode::XXH3_update
  - XXH_errorcode::XXH3_64bits_update
  - XXH3_digest_long
  - XXH64_hash_t::XXH3_64bits_digest
  - XXH_MIN
  - XXH3_generateSecret
  - XXH128_hash_t::XXH3_len_1to3_128b
  - XXH128_hash_t::XXH3_len_4to8_128b
  - XXH128_hash_t::XXH3_len_9to16_128b
  - XXH128_hash_t::XXH3_len_0to16_128b
  - XXH128_hash_t::XXH128_mix32B
  - XXH128_hash_t::XXH3_len_17to128_128b
  - XXH128_hash_t::XXH3_len_129to240_128b
  - XXH128_hash_t::XXH3_hashLong_128b_internal
  - XXH128_hash_t::XXH3_hashLong_128b_default
  - XXH128_hash_t::XXH3_hashLong_128b_withSecret
  - XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
  - XXH128_hash_t::XXH3_hashLong_128b_withSeed
  - XXH128_hash_t::XXH3_128bits_internal
  - XXH128_hash_t::XXH3_128bits
  - XXH128_hash_t::XXH3_128bits_withSecret
  - XXH128_hash_t::XXH3_128bits_withSeed
  - XXH128_hash_t::XXH128
  - XXH_errorcode::XXH3_128bits_reset
  - XXH_errorcode::XXH3_128bits_reset_withSecret
  - XXH_errorcode::XXH3_128bits_reset_withSeed
  - XXH_errorcode::XXH3_128bits_update
  - XXH128_hash_t::XXH3_128bits_digest
  - XXH128_isEqual
  - XXH128_cmp
  - XXH128_canonicalFromHash
  - XXH128_hash_t::XXH128_hashFromCanonical
  source_file: /src/memcached/xxhash.h
  types:
    enum:
    - enumerators:
      - name: XXH_SCALAR
        value: '0'
      - name: XXH_AVX512
        value: '3'
      - name: XXH_AVX2
        value: '2'
      - name: XXH_SSE2
        value: '1'
      - name: XXH_NEON
        value: '4'
      - name: XXH_VSX
        value: '5'
      item_type: enum
      name: XXH_VECTOR_TYPE
      pos:
        line_end: 2706
        line_start: 2694
        source_file: /src/memcached/xxhash.h
    preproc_defs:
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/memcached/xxhash.h
      type_or_value: static __inline __attribute__((unused))
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/memcached/xxhash.h
      type_or_value: static inline
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/memcached/xxhash.h
      type_or_value: static __inline
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/memcached/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NAMESPACE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_INLINE_
    - item_type: preproc_def
      name: XXH_OK
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH_OK)
    - item_type: preproc_def
      name: XXH_ERROR
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH_ERROR)
    - item_type: preproc_def
      name: XXH_errorcode
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH_errorcode)
    - item_type: preproc_def
      name: XXH32_canonical_t
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH32_canonical_t)
    - item_type: preproc_def
      name: XXH64_canonical_t
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH64_canonical_t)
    - item_type: preproc_def
      name: XXH128_canonical_t
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH128_canonical_t)
    - item_type: preproc_def
      name: XXH32_state_s
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH32_state_s)
    - item_type: preproc_def
      name: XXH32_state_t
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH32_state_t)
    - item_type: preproc_def
      name: XXH64_state_s
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH64_state_s)
    - item_type: preproc_def
      name: XXH64_state_t
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH64_state_t)
    - item_type: preproc_def
      name: XXH3_state_s
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH3_state_s)
    - item_type: preproc_def
      name: XXH3_state_t
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH3_state_t)
    - item_type: preproc_def
      name: XXH128_hash_t
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_IPREF(XXH128_hash_t)
    - item_type: preproc_def
      name: XXHASH_H_5627135585666179
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/memcached/xxhash.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/memcached/xxhash.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: XXH_versionNumber
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber)
    - item_type: preproc_def
      name: XXH32
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32)
    - item_type: preproc_def
      name: XXH32_createState
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_createState)
    - item_type: preproc_def
      name: XXH32_freeState
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_freeState)
    - item_type: preproc_def
      name: XXH32_reset
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_reset)
    - item_type: preproc_def
      name: XXH32_update
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_update)
    - item_type: preproc_def
      name: XXH32_digest
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_digest)
    - item_type: preproc_def
      name: XXH32_copyState
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_copyState)
    - item_type: preproc_def
      name: XXH32_canonicalFromHash
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash)
    - item_type: preproc_def
      name: XXH32_hashFromCanonical
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical)
    - item_type: preproc_def
      name: XXH64
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64)
    - item_type: preproc_def
      name: XXH64_createState
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_createState)
    - item_type: preproc_def
      name: XXH64_freeState
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_freeState)
    - item_type: preproc_def
      name: XXH64_reset
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_reset)
    - item_type: preproc_def
      name: XXH64_update
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_update)
    - item_type: preproc_def
      name: XXH64_digest
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_digest)
    - item_type: preproc_def
      name: XXH64_copyState
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_copyState)
    - item_type: preproc_def
      name: XXH64_canonicalFromHash
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash)
    - item_type: preproc_def
      name: XXH64_hashFromCanonical
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical)
    - item_type: preproc_def
      name: XXH3_64bits
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits)
    - item_type: preproc_def
      name: XXH3_64bits_withSecret
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret)
    - item_type: preproc_def
      name: XXH3_64bits_withSeed
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed)
    - item_type: preproc_def
      name: XXH3_createState
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_createState)
    - item_type: preproc_def
      name: XXH3_freeState
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_freeState)
    - item_type: preproc_def
      name: XXH3_copyState
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_copyState)
    - item_type: preproc_def
      name: XXH3_64bits_reset
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset)
    - item_type: preproc_def
      name: XXH3_64bits_reset_withSeed
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSeed)
    - item_type: preproc_def
      name: XXH3_64bits_reset_withSecret
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret)
    - item_type: preproc_def
      name: XXH3_64bits_update
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update)
    - item_type: preproc_def
      name: XXH3_64bits_digest
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest)
    - item_type: preproc_def
      name: XXH3_generateSecret
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret)
    - item_type: preproc_def
      name: XXH128
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128)
    - item_type: preproc_def
      name: XXH3_128bits
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits)
    - item_type: preproc_def
      name: XXH3_128bits_withSeed
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed)
    - item_type: preproc_def
      name: XXH3_128bits_withSecret
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret)
    - item_type: preproc_def
      name: XXH3_128bits_reset
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset)
    - item_type: preproc_def
      name: XXH3_128bits_reset_withSeed
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSeed)
    - item_type: preproc_def
      name: XXH3_128bits_reset_withSecret
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret)
    - item_type: preproc_def
      name: XXH3_128bits_update
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update)
    - item_type: preproc_def
      name: XXH3_128bits_digest
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest)
    - item_type: preproc_def
      name: XXH128_isEqual
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual)
    - item_type: preproc_def
      name: XXH128_cmp
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_cmp)
    - item_type: preproc_def
      name: XXH128_canonicalFromHash
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_canonicalFromHash)
    - item_type: preproc_def
      name: XXH128_hashFromCanonical
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_hashFromCanonical)
    - item_type: preproc_def
      name: XXH_VERSION_MAJOR
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_VERSION_MINOR
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/memcached/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_VERSION_RELEASE
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_VERSION_NUMBER
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/memcached/xxhash.h
      type_or_value: (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE)
    - item_type: preproc_def
      name: XXH3_SECRET_SIZE_MIN
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/memcached/xxhash.h
      type_or_value: '136'
    - item_type: preproc_def
      name: XXH3_INTERNALBUFFER_SIZE
      pos:
        line_end: 944
        line_start: 943
        source_file: /src/memcached/xxhash.h
      type_or_value: '256'
    - item_type: preproc_def
      name: XXH3_SECRET_DEFAULT_SIZE
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/memcached/xxhash.h
      type_or_value: '192'
    - item_type: preproc_def
      name: XXH_FORCE_MEMORY_ACCESS
      pos:
        line_end: 1166
        line_start: 1165
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_ACCEPT_NULL_INPUT_POINTER
      pos:
        line_end: 1177
        line_start: 1176
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 1204
        line_start: 1203
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 1226
        line_start: 1225
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_REROLL
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_MEMORY_ACCESS
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_ACCEPT_NULL_INPUT_POINTER
      pos:
        line_end: 1266
        line_start: 1265
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 1272
        line_start: 1271
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 1274
        line_start: 1273
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 1281
        line_start: 1280
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 1283
        line_start: 1282
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_REROLL
      pos:
        line_end: 1289
        line_start: 1288
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_REROLL
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 1345
        line_start: 1344
        source_file: /src/memcached/xxhash.h
      type_or_value: static __attribute__((unused))
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 1347
        line_start: 1346
        source_file: /src/memcached/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 1349
        line_start: 1348
        source_file: /src/memcached/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 1352
        line_start: 1351
        source_file: /src/memcached/xxhash.h
      type_or_value: static __forceinline
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 1353
        line_start: 1352
        source_file: /src/memcached/xxhash.h
      type_or_value: static __declspec(noinline)
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 1355
        line_start: 1354
        source_file: /src/memcached/xxhash.h
      type_or_value: static __inline__ __attribute__((always_inline, unused))
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 1356
        line_start: 1355
        source_file: /src/memcached/xxhash.h
      type_or_value: static __attribute__((noinline))
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 1359
        line_start: 1358
        source_file: /src/memcached/xxhash.h
      type_or_value: static inline
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 1360
        line_start: 1359
        source_file: /src/memcached/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 1362
        line_start: 1361
        source_file: /src/memcached/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 1363
        line_start: 1362
        source_file: /src/memcached/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_DEBUGLEVEL
      pos:
        line_end: 1381
        line_start: 1380
        source_file: /src/memcached/xxhash.h
      type_or_value: DEBUGLEVEL
    - item_type: preproc_def
      name: XXH_DEBUGLEVEL
      pos:
        line_end: 1383
        line_start: 1382
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: BYTE
      pos:
        line_end: 1433
        line_start: 1432
        source_file: /src/memcached/xxhash.h
      type_or_value: xxh_u8
    - item_type: preproc_def
      name: U8
      pos:
        line_end: 1434
        line_start: 1433
        source_file: /src/memcached/xxhash.h
      type_or_value: xxh_u8
    - item_type: preproc_def
      name: U32
      pos:
        line_end: 1435
        line_start: 1434
        source_file: /src/memcached/xxhash.h
      type_or_value: xxh_u32
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 1563
        line_start: 1562
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 1566
        line_start: 1565
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 1583
        line_start: 1582
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_isLittleEndian()
    - item_type: preproc_def
      name: XXH_GCC_VERSION
      pos:
        line_end: 1593
        line_start: 1592
        source_file: /src/memcached/xxhash.h
      type_or_value: (__GNUC__ * 100 + __GNUC_MINOR__)
    - item_type: preproc_def
      name: XXH_rotl32
      pos:
        line_end: 1616
        line_start: 1615
        source_file: /src/memcached/xxhash.h
      type_or_value: __builtin_rotateleft32
    - item_type: preproc_def
      name: XXH_rotl64
      pos:
        line_end: 1617
        line_start: 1616
        source_file: /src/memcached/xxhash.h
      type_or_value: __builtin_rotateleft64
    - item_type: preproc_def
      name: XXH_swap32
      pos:
        line_end: 1636
        line_start: 1635
        source_file: /src/memcached/xxhash.h
      type_or_value: _byteswap_ulong
    - item_type: preproc_def
      name: XXH_swap32
      pos:
        line_end: 1638
        line_start: 1637
        source_file: /src/memcached/xxhash.h
      type_or_value: __builtin_bswap32
    - item_type: preproc_def
      name: XXH_PRIME32_1
      pos:
        line_end: 1728
        line_start: 1727
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x9E3779B1U  '
    - item_type: preproc_def
      name: XXH_PRIME32_2
      pos:
        line_end: 1729
        line_start: 1728
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x85EBCA77U  '
    - item_type: preproc_def
      name: XXH_PRIME32_3
      pos:
        line_end: 1730
        line_start: 1729
        source_file: /src/memcached/xxhash.h
      type_or_value: '0xC2B2AE3DU  '
    - item_type: preproc_def
      name: XXH_PRIME32_4
      pos:
        line_end: 1731
        line_start: 1730
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x27D4EB2FU  '
    - item_type: preproc_def
      name: XXH_PRIME32_5
      pos:
        line_end: 1732
        line_start: 1731
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x165667B1U  '
    - item_type: preproc_def
      name: PRIME32_1
      pos:
        line_end: 1735
        line_start: 1734
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME32_1
    - item_type: preproc_def
      name: PRIME32_2
      pos:
        line_end: 1736
        line_start: 1735
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME32_2
    - item_type: preproc_def
      name: PRIME32_3
      pos:
        line_end: 1737
        line_start: 1736
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME32_3
    - item_type: preproc_def
      name: PRIME32_4
      pos:
        line_end: 1738
        line_start: 1737
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME32_4
    - item_type: preproc_def
      name: PRIME32_5
      pos:
        line_end: 1739
        line_start: 1738
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME32_5
    - item_type: preproc_def
      name: XXH_PROCESS1
      pos:
        line_end: 1839
        line_start: 1835
        source_file: /src/memcached/xxhash.h
      type_or_value: "do {                           \\\n    h32 += (*ptr++) * XXH_PRIME32_5;
        \               \\\n    h32 = XXH_rotl32(h32, 11) * XXH_PRIME32_1;      \\\n}
        while (0)"
    - item_type: preproc_def
      name: XXH_PROCESS4
      pos:
        line_end: 1845
        line_start: 1840
        source_file: /src/memcached/xxhash.h
      type_or_value: "do {                           \\\n    h32 += XXH_get32bits(ptr)
        * XXH_PRIME32_3;      \\\n    ptr += 4;                                   \\\n
        \   h32  = XXH_rotl32(h32, 17) * XXH_PRIME32_4;     \\\n} while (0)"
    - item_type: preproc_def
      name: PROCESS1
      pos:
        line_end: 1905
        line_start: 1904
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PROCESS1
    - item_type: preproc_def
      name: PROCESS4
      pos:
        line_end: 1906
        line_start: 1905
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PROCESS4
    - item_type: preproc_def
      name: U64
      pos:
        line_end: 2144
        line_start: 2143
        source_file: /src/memcached/xxhash.h
      type_or_value: xxh_u64
    - item_type: preproc_def
      name: XXH_swap64
      pos:
        line_end: 2193
        line_start: 2192
        source_file: /src/memcached/xxhash.h
      type_or_value: _byteswap_uint64
    - item_type: preproc_def
      name: XXH_swap64
      pos:
        line_end: 2195
        line_start: 2194
        source_file: /src/memcached/xxhash.h
      type_or_value: __builtin_bswap64
    - item_type: preproc_def
      name: XXH_PRIME64_1
      pos:
        line_end: 2270
        line_start: 2269
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x9E3779B185EBCA87ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_2
      pos:
        line_end: 2271
        line_start: 2270
        source_file: /src/memcached/xxhash.h
      type_or_value: '0xC2B2AE3D27D4EB4FULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_3
      pos:
        line_end: 2272
        line_start: 2271
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x165667B19E3779F9ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_4
      pos:
        line_end: 2273
        line_start: 2272
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x85EBCA77C2B2AE63ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_5
      pos:
        line_end: 2274
        line_start: 2273
        source_file: /src/memcached/xxhash.h
      type_or_value: '0x27D4EB2F165667C5ULL  '
    - item_type: preproc_def
      name: PRIME64_1
      pos:
        line_end: 2277
        line_start: 2276
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME64_1
    - item_type: preproc_def
      name: PRIME64_2
      pos:
        line_end: 2278
        line_start: 2277
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME64_2
    - item_type: preproc_def
      name: PRIME64_3
      pos:
        line_end: 2279
        line_start: 2278
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME64_3
    - item_type: preproc_def
      name: PRIME64_4
      pos:
        line_end: 2280
        line_start: 2279
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME64_4
    - item_type: preproc_def
      name: PRIME64_5
      pos:
        line_end: 2281
        line_start: 2280
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PRIME64_5
    - item_type: preproc_def
      name: PROCESS1_64
      pos:
        line_end: 2339
        line_start: 2338
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PROCESS1_64
    - item_type: preproc_def
      name: PROCESS4_64
      pos:
        line_end: 2340
        line_start: 2339
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PROCESS4_64
    - item_type: preproc_def
      name: PROCESS8_64
      pos:
        line_end: 2341
        line_start: 2340
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_PROCESS8_64
    - item_type: preproc_def
      name: XXH_RESTRICT
      pos:
        line_end: 2567
        line_start: 2566
        source_file: /src/memcached/xxhash.h
      type_or_value: restrict
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 2589
        line_start: 2588
        source_file: /src/memcached/xxhash.h
      type_or_value: '__inline__  '
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 2685
        line_start: 2684
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2717
        line_start: 2716
        source_file: /src/memcached/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_SCALAR
      pos:
        line_end: 2722
        line_start: 2721
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_SSE2
      pos:
        line_end: 2723
        line_start: 2722
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_AVX2
      pos:
        line_end: 2724
        line_start: 2723
        source_file: /src/memcached/xxhash.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XXH_AVX512
      pos:
        line_end: 2725
        line_start: 2724
        source_file: /src/memcached/xxhash.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XXH_NEON
      pos:
        line_end: 2726
        line_start: 2725
        source_file: /src/memcached/xxhash.h
      type_or_value: '4'
    - item_type: preproc_def
      name: XXH_VSX
      pos:
        line_end: 2727
        line_start: 2726
        source_file: /src/memcached/xxhash.h
      type_or_value: '5'
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 2732
        line_start: 2731
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_AVX512
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 2734
        line_start: 2733
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_AVX2
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 2736
        line_start: 2735
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_SSE2
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 2741
        line_start: 2740
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_NEON
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 2745
        line_start: 2744
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_VSX
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 2747
        line_start: 2746
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2757
        line_start: 2756
        source_file: /src/memcached/xxhash.h
      type_or_value: '64  '
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2759
        line_start: 2758
        source_file: /src/memcached/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2761
        line_start: 2760
        source_file: /src/memcached/xxhash.h
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2763
        line_start: 2762
        source_file: /src/memcached/xxhash.h
      type_or_value: '32'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2765
        line_start: 2764
        source_file: /src/memcached/xxhash.h
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2767
        line_start: 2766
        source_file: /src/memcached/xxhash.h
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 2769
        line_start: 2768
        source_file: /src/memcached/xxhash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 2775
        line_start: 2774
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_ACC_ALIGN
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 2777
        line_start: 2776
        source_file: /src/memcached/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 2944
        line_start: 2943
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 2947
        line_start: 2946
        source_file: /src/memcached/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 2949
        line_start: 2948
        source_file: /src/memcached/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_vec_revb
      pos:
        line_end: 2955
        line_start: 2954
        source_file: /src/memcached/xxhash.h
      type_or_value: vec_revb
    - item_type: preproc_def
      name: XXH_vec_mulo
      pos:
        line_end: 2990
        line_start: 2989
        source_file: /src/memcached/xxhash.h
      type_or_value: vec_mulo
    - item_type: preproc_def
      name: XXH_vec_mule
      pos:
        line_end: 2991
        line_start: 2990
        source_file: /src/memcached/xxhash.h
      type_or_value: vec_mule
    - item_type: preproc_def
      name: XXH_vec_mulo
      pos:
        line_end: 2994
        line_start: 2993
        source_file: /src/memcached/xxhash.h
      type_or_value: __builtin_altivec_vmulouw
    - item_type: preproc_def
      name: XXH_vec_mule
      pos:
        line_end: 2995
        line_start: 2994
        source_file: /src/memcached/xxhash.h
      type_or_value: __builtin_altivec_vmuleuw
    - item_type: preproc_def
      name: XXH_SECRET_DEFAULT_SIZE
      pos:
        line_end: 3035
        line_start: 3034
        source_file: /src/memcached/xxhash.h
      type_or_value: '192   '
    - item_type: preproc_def
      name: kSecret
      pos:
        line_end: 3059
        line_start: 3058
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_kSecret
    - item_type: preproc_def
      name: XXH3_MIDSIZE_MAX
      pos:
        line_end: 3454
        line_start: 3453
        source_file: /src/memcached/xxhash.h
      type_or_value: '240'
    - item_type: preproc_def
      name: XXH3_MIDSIZE_STARTOFFSET
      pos:
        line_end: 3464
        line_start: 3463
        source_file: /src/memcached/xxhash.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XXH3_MIDSIZE_LASTOFFSET
      pos:
        line_end: 3465
        line_start: 3464
        source_file: /src/memcached/xxhash.h
      type_or_value: '17'
    - item_type: preproc_def
      name: XXH_STRIPE_LEN
      pos:
        line_end: 3512
        line_start: 3511
        source_file: /src/memcached/xxhash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_SECRET_CONSUME_RATE
      pos:
        line_end: 3513
        line_start: 3512
        source_file: /src/memcached/xxhash.h
      type_or_value: '8   '
    - item_type: preproc_def
      name: XXH_ACC_NB
      pos:
        line_end: 3514
        line_start: 3513
        source_file: /src/memcached/xxhash.h
      type_or_value: (XXH_STRIPE_LEN / sizeof(xxh_u64))
    - item_type: preproc_def
      name: STRIPE_LEN
      pos:
        line_end: 3517
        line_start: 3516
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_STRIPE_LEN
    - item_type: preproc_def
      name: ACC_NB
      pos:
        line_end: 3518
        line_start: 3517
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH_ACC_NB
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 4146
        line_start: 4145
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_accumulate_512_avx512
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 4147
        line_start: 4146
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_scrambleAcc_avx512
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 4148
        line_start: 4147
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_initCustomSecret_avx512
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 4152
        line_start: 4151
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_accumulate_512_avx2
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 4153
        line_start: 4152
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_scrambleAcc_avx2
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 4154
        line_start: 4153
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_initCustomSecret_avx2
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 4158
        line_start: 4157
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_accumulate_512_sse2
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 4159
        line_start: 4158
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_scrambleAcc_sse2
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 4160
        line_start: 4159
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_initCustomSecret_sse2
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 4164
        line_start: 4163
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_accumulate_512_neon
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 4165
        line_start: 4164
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_scrambleAcc_neon
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 4166
        line_start: 4165
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 4170
        line_start: 4169
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_accumulate_512_vsx
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 4171
        line_start: 4170
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_scrambleAcc_vsx
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 4172
        line_start: 4171
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 4176
        line_start: 4175
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_accumulate_512_scalar
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 4177
        line_start: 4176
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_scrambleAcc_scalar
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 4178
        line_start: 4177
        source_file: /src/memcached/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 4186
        line_start: 4185
        source_file: /src/memcached/xxhash.h
      type_or_value: '320'
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 4189
        line_start: 4188
        source_file: /src/memcached/xxhash.h
      type_or_value: '512'
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 4191
        line_start: 4190
        source_file: /src/memcached/xxhash.h
      type_or_value: '384'
    - item_type: preproc_def
      name: XXH_SECRET_LASTACC_START
      pos:
        line_end: 4246
        line_start: 4245
        source_file: /src/memcached/xxhash.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: XXH3_INIT_ACC
      pos:
        line_end: 4287
        line_start: 4285
        source_file: /src/memcached/xxhash.h
      type_or_value: "{ XXH_PRIME32_3, XXH_PRIME64_1, XXH_PRIME64_2, XXH_PRIME64_3,
        \\\n                        XXH_PRIME64_4, XXH_PRIME32_2, XXH_PRIME64_5, XXH_PRIME32_1
        }"
    - item_type: preproc_def
      name: XXH_SECRET_MERGEACCS_START
      pos:
        line_end: 4302
        line_start: 4301
        source_file: /src/memcached/xxhash.h
      type_or_value: '11'
    - item_type: preproc_def
      name: XXH3_INTERNALBUFFER_STRIPES
      pos:
        line_end: 4627
        line_start: 4626
        source_file: /src/memcached/xxhash.h
      type_or_value: (XXH3_INTERNALBUFFER_SIZE / XXH_STRIPE_LEN)
    structs:
    - fields:
      - name: digest[4]
        type: unsigned char
      item_type: struct
      name: XXH32_canonical_t
      pos:
        line_end: 519
        line_start: 517
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: digest[sizeof(XXH64_hash_t)]
        type: unsigned char
      item_type: struct
      name: XXH64_canonical_t
      pos:
        line_end: 634
        line_start: 634
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: low64
        type: XXH64_hash_t
      - name: high64
        type: XXH64_hash_t
      item_type: struct
      name: XXH128_hash_t
      pos:
        line_end: 787
        line_start: 784
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: digest[sizeof(XXH128_hash_t)]
        type: unsigned char
      item_type: struct
      name: XXH128_canonical_t
      pos:
        line_end: 836
        line_start: 836
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: total_len_32
        type: XXH32_hash_t
      - name: large_len
        type: XXH32_hash_t
      - name: v1
        type: XXH32_hash_t
      - name: v2
        type: XXH32_hash_t
      - name: v3
        type: XXH32_hash_t
      - name: v4
        type: XXH32_hash_t
      - name: mem32[4]
        type: XXH32_hash_t
      - name: memsize
        type: XXH32_hash_t
      - name: reserved
        type: XXH32_hash_t
      item_type: struct
      name: XXH32_state_s
      pos:
        line_end: 888
        line_start: 878
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: total_len
        type: XXH64_hash_t
      - name: v1
        type: XXH64_hash_t
      - name: v2
        type: XXH64_hash_t
      - name: v3
        type: XXH64_hash_t
      - name: v4
        type: XXH64_hash_t
      - name: mem64[4]
        type: XXH64_hash_t
      - name: memsize
        type: XXH32_hash_t
      - name: reserved32
        type: XXH32_hash_t
      - name: reserved64
        type: XXH64_hash_t
      item_type: struct
      name: XXH64_state_s
      pos:
        line_end: 915
        line_start: 905
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: (64, XXH64_hash_t acc[8])
        type: XXH_ALIGN_MEMBER
      - name: (64, unsigned char customSecret[XXH3_SECRET_DEFAULT_SIZE])
        type: XXH_ALIGN_MEMBER
      - name: (64, unsigned char buffer[XXH3_INTERNALBUFFER_SIZE])
        type: XXH_ALIGN_MEMBER
      - name: bufferedSize
        type: XXH32_hash_t
      - name: reserved32
        type: XXH32_hash_t
      - name: nbStripesSoFar
        type: size_t
      - name: totalLen
        type: XXH64_hash_t
      - name: nbStripesPerBlock
        type: size_t
      - name: secretLimit
        type: size_t
      - name: seed
        type: XXH64_hash_t
      - name: reserved64
        type: XXH64_hash_t
      - name: '* extSecret'
        type: unsigned char
      item_type: struct
      name: XXH3_state_s
      pos:
        line_end: 1001
        line_start: 974
        source_file: /src/memcached/xxhash.h
    typedefs:
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/memcached/xxhash.h
      type: uint32_t
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/memcached/xxhash.h
      type: uint32_t
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/memcached/xxhash.h
      type: unsigned int
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/memcached/xxhash.h
      type: unsigned long
    - item_type: typedef
      name: XXH32_state_t
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/memcached/xxhash.h
      type: XXH32_state_s
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/memcached/xxhash.h
      type: uint64_t
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/memcached/xxhash.h
      type: uint64_t
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/memcached/xxhash.h
      type: unsigned long
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 574
        line_start: 574
        source_file: /src/memcached/xxhash.h
      type: unsigned long long
    - item_type: typedef
      name: XXH64_state_t
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/memcached/xxhash.h
      type: XXH64_state_s
    - item_type: typedef
      name: XXH3_state_t
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/memcached/xxhash.h
      type: XXH3_state_s
    - item_type: typedef
      name: xxh_u8
      pos:
        line_end: 1425
        line_start: 1425
        source_file: /src/memcached/xxhash.h
      type: uint8_t
    - item_type: typedef
      name: xxh_u8
      pos:
        line_end: 1427
        line_start: 1427
        source_file: /src/memcached/xxhash.h
      type: unsigned char
    - item_type: typedef
      name: xxh_u32
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/memcached/xxhash.h
      type: XXH32_hash_t
    - item_type: typedef
      name: xxh_u64
      pos:
        line_end: 2140
        line_start: 2140
        source_file: /src/memcached/xxhash.h
      type: XXH64_hash_t
    - item_type: typedef
      name: xxh_u64x2
      pos:
        line_end: 2936
        line_start: 2936
        source_file: /src/memcached/xxhash.h
      type: __vector unsigned long long
    - item_type: typedef
      name: xxh_u8x16
      pos:
        line_end: 2937
        line_start: 2937
        source_file: /src/memcached/xxhash.h
      type: __vector unsigned
    - item_type: typedef
      name: xxh_u32x4
      pos:
        line_end: 2938
        line_start: 2938
        source_file: /src/memcached/xxhash.h
      type: __vector unsigned
    - item_type: typedef
      name: xxh_i64
      pos:
        line_end: 3534
        line_start: 3534
        source_file: /src/memcached/xxhash.h
      type: int64_t
    - item_type: typedef
      name: xxh_i64
      pos:
        line_end: 3537
        line_start: 3537
        source_file: /src/memcached/xxhash.h
      type: long long
    - item_type: typedef
      name: (*XXH3_f_accumulate_512)(void* XXH_RESTRICT, const void*, const void*)
      pos:
        line_end: 4138
        line_start: 4138
        source_file: /src/memcached/xxhash.h
      type: void
    - item_type: typedef
      name: (*XXH3_f_scrambleAcc)(void* XXH_RESTRICT, const void*)
      pos:
        line_end: 4139
        line_start: 4139
        source_file: /src/memcached/xxhash.h
      type: void
    - item_type: typedef
      name: (*XXH3_f_initCustomSecret)(void* XXH_RESTRICT, xxh_u64)
      pos:
        line_end: 4140
        line_start: 4140
        source_file: /src/memcached/xxhash.h
      type: void
    - item_type: typedef
      name: "(*XXH3_hashLong64_f)(const void* XXH_RESTRICT, size_t,\n                                          XXH64_hash_t,
        const xxh_u8* XXH_RESTRICT, size_t)"
      pos:
        line_end: 4375
        line_start: 4374
        source_file: /src/memcached/xxhash.h
      type: XXH64_hash_t
    - item_type: typedef
      name: "(*XXH3_hashLong128_f)(const void* XXH_RESTRICT, size_t,\n                                            XXH64_hash_t,
        const void* XXH_RESTRICT, size_t)"
      pos:
        line_end: 5121
        line_start: 5120
        source_file: /src/memcached/xxhash.h
      type: XXH128_hash_t
    union:
    - fields:
      - name: u32
        type: xxh_u32
      item_type: union
      name: unalign
      pos:
        line_end: 1511
        line_start: 1511
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: u32
        type: xxh_u32
      item_type: union
      name: xxh_unalign
      pos:
        line_end: 1515
        line_start: 1515
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: u
        type: xxh_u32
      - name: c[4]
        type: xxh_u8
      item_type: union
      name: one = { 1 }
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: u32
        type: xxh_u32
      - name: u64
        type: xxh_u64
      item_type: union
      name: unalign64
      pos:
        line_end: 2168
        line_start: 2168
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: u32
        type: xxh_u32
      - name: u64
        type: xxh_u64
      item_type: union
      name: xxh_unalign64
      pos:
        line_end: 2172
        line_start: 2172
        source_file: /src/memcached/xxhash.h
    - fields:
      - name: '* cp'
        type: __m512i
      - name: '* p'
        type: void
      item_type: union
      name: remote_const_void
      pos:
        line_end: 3662
        line_start: 3659
        source_file: /src/memcached/xxhash.h
- function_names:
  - restart_register
  - restart_check
  - restart_get_kv
  - restart_save
  - restart_set_kv
  - _find_pagesize
  - restart_mmap_open
  - restart_mmap_close
  - restart_fixup
  source_file: /src/memcached/restart.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SET_VAL_MAX
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/memcached/restart.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: '*data'
        type: void
      - name: '*next'
        type: struct _restart_data_cb
      - name: ccb
        type: restart_check_cb
      - name: scb
        type: restart_save_cb
      - name: tag[RESTART_TAG_MAXLEN]
        type: char
      item_type: struct
      name: _restart_data_cb
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/memcached/restart.c
    - fields:
      - name: '*f'
        type: FILE
      - name: '*cb'
        type: restart_data_cb
      - name: '*line'
        type: char
      - name: done
        type: bool
      item_type: struct
      name: restart_cb_ctx
      pos:
        line_end: 64
        line_start: 59
        source_file: /src/memcached/restart.c
    typedefs:
    - item_type: typedef
      name: restart_data_cb
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/memcached/restart.c
      type: _restart_data_cb
    union: []
- function_names:
  - L_DEBUG
  - _logger_log_text
  - _logger_log_evictions
  - _logger_log_ext_write
  - _logger_log_item_get
  - _logger_log_item_store
  - _logger_log_item_deleted
  - _logger_log_conn_event
  - _logger_util_addr_endpoint
  - _logger_parse_text
  - _logger_parse_ise
  - _logger_parse_ige
  - _logger_parse_ee
  - _logger_parse_ide
  - _logger_parse_extw
  - _logger_parse_cne
  - _logger_parse_cce
  - _logger_log_proxy_req
  - _logger_parse_prx_req
  - _logger_log_proxy_errbe
  - _logger_parse_prx_errbe
  - logger_get_gid
  - logger_set_gid
  - logger_link_q
  - logger_set_flags
  - logger_thread_parse_entry
  - logger_thread_write_entry
  - logger_thread_close_watcher
  - logger_thread_read
  - logger_thread_poll_watchers
  - logger_thread_flush_stats
  - logger_thread
  - start_logger_thread
  - stop_logger_thread
  - logger_init
  - logger_stop
  - logger_create
  - logger_log
  - logger_add_watcher
  source_file: /src/memcached/logger.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WATCHER_LIMIT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/memcached/logger.c
      type_or_value: '20'
    - item_type: preproc_def
      name: WATCHER_ALL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/memcached/logger.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: LOGGER_PARSE_SCRATCH
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/memcached/logger.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: RQUEUE_R_GOOD
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/memcached/logger.c
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: RQUEUE_R_OK
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/memcached/logger.c
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: RQUEUE_R_ANY
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/memcached/logger.c
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: MAX_RBUF_READ
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/memcached/logger.c
      type_or_value: '100'
    - item_type: preproc_def
      name: MAX_LOGGER_SLEEP
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/memcached/logger.c
      type_or_value: '1000000'
    - item_type: preproc_def
      name: MIN_LOGGER_SLEEP
      pos:
        line_end: 899
        line_start: 898
        source_file: /src/memcached/logger.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - storage_validate_item
  - storage_delete
  - process_extstore_stats
  - storage_stats
  - _storage_get_item_cb
  - storage_get_item
  - storage_submit_cb
  - recache_or_free
  - storage_return_cb
  - storage_finalize_cb
  - storage_write
  - storage_write_thread
  - storage_write_pause
  - storage_write_resume
  - start_storage_write_thread
  - storage_compact_check
  - storage_compact_readback
  - _storage_compact_cb
  - storage_compact_thread
  - storage_compact_pause
  - storage_compact_resume
  - start_storage_compact_thread
  - storage_conf_parse
  - storage_init_config
  - storage_read_config
  - storage_check_config
  - storage_init
  source_file: /src/memcached/storage.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_BUCKET_DEFAULT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/memcached/storage.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PAGE_BUCKET_COMPACT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/memcached/storage.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PAGE_BUCKET_CHUNKED
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/memcached/storage.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PAGE_BUCKET_LOWTTL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/memcached/storage.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PAGE_BUCKET_COLDCOMPACT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/memcached/storage.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PAGE_BUCKET_OLD
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/memcached/storage.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PAGE_BUCKET_COUNT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/memcached/storage.c
      type_or_value: '6'
    - item_type: preproc_def
      name: WRITE_SLEEP_MIN
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/memcached/storage.c
      type_or_value: '200'
    - item_type: preproc_def
      name: MIN_STORAGE_COMPACT_SLEEP
      pos:
        line_end: 922
        line_start: 921
        source_file: /src/memcached/storage.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: io_queue_type
        type: uint8_t
      - name: io_sub_type
        type: uint8_t
      - name: payload
        type: uint8_t
      - name: '*thread'
        type: LIBEVENT_THREAD
      - name: '*c'
        type: conn
      - name: '*resp'
        type: mc_resp
      - name: return_cb
        type: io_queue_cb
      - name: finalize_cb
        type: io_queue_cb
      - name: (io_pending_t)
        type: STAILQ_ENTRY
      - name: '*hdr_it'
        type: item
      - name: io_ctx
        type: obj_io
      - name: iovec_data
        type: unsigned int
      - name: noreply
        type: bool
      - name: miss
        type: bool
      - name: badcrc
        type: bool
      - name: active
        type: bool
      item_type: struct
      name: _io_pending_storage_t
      pos:
        line_end: 48
        line_start: 30
        source_file: /src/memcached/storage.c
    - fields:
      - name: bucket
        type: unsigned int
      - name: low_page
        type: unsigned int
      - name: lowest_page
        type: unsigned int
      - name: low_version
        type: uint64_t
      - name: lowest_version
        type: uint64_t
      - name: pages_free
        type: unsigned int
      - name: pages_used
        type: unsigned int
      - name: pages_total
        type: unsigned int
      - name: bytes_fragmented
        type: unsigned int
      - name: do_compact
        type: bool
      - name: do_compact_drop
        type: bool
      item_type: struct
      name: __storage_buk
      pos:
        line_end: 786
        line_start: 774
        source_file: /src/memcached/storage.c
    - fields:
      - name: drop_unread
        type: unsigned int
      - name: has_coldcompact
        type: unsigned int
      - name: has_old
        type: unsigned int
      - name: use_old
        type: unsigned int
      item_type: struct
      name: _compact_flags
      pos:
        line_end: 793
        line_start: 788
        source_file: /src/memcached/storage.c
    - fields:
      - name: io
        type: obj_io
      - name: lock
        type: pthread_mutex_t
      - name: done
        type: bool
      - name: submitted
        type: bool
      - name: miss
        type: bool
      item_type: struct
      name: storage_compact_wrap
      pos:
        line_end: 929
        line_start: 923
        source_file: /src/memcached/storage.c
    - fields:
      - name: '*storage_file'
        type: struct extstore_conf_file
      - name: ext_cf
        type: struct extstore_conf
      item_type: struct
      name: storage_settings
      pos:
        line_end: 1301
        line_start: 1298
        source_file: /src/memcached/storage.c
    typedefs: []
    union: []
- function_names:
  - mcp_tls_init
  - mcp_tls_backend_init
  - mcp_tls_shutdown
  - mcp_tls_cleanup
  - mcp_tls_connect
  - mcp_tls_handshake
  - mcp_tls_send_validate
  - mcp_tls_read
  - mcp_tls_writev
  - mcp_tls_writev
  source_file: /src/memcached/proxy_tls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TLS_WBUF_SIZE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/memcached/proxy_tls.c
      type_or_value: 16 * 1024
    structs: []
    typedefs: []
    union: []
- function_names:
  - gf2_matrix_times
  - gf2_matrix_square
  - crc32c_zeros_op
  - crc32c_zeros
  - crc32c_shift
  - crc32c_init_hw
  - crc32c_hw
  - SSE42
  - crc32c_init
  - crc32cx
  - crc32cb
  - crc32c_hw
  - crc32c_init
  - crc32c_init
  - crc32c_init
  - crc32c_init_sw_little
  - crc32c_sw_little
  - swap
  - crc32c_init_sw_big
  - crc32c_sw_big
  - crc32c_sw
  source_file: /src/memcached/crc32c.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLY
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/memcached/crc32c.c
      type_or_value: '0x82f63b78'
    - item_type: preproc_def
      name: LONG
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/memcached/crc32c.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: LONGx1
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/memcached/crc32c.c
      type_or_value: '"8192"'
    - item_type: preproc_def
      name: LONGx2
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/memcached/crc32c.c
      type_or_value: '"16384"'
    - item_type: preproc_def
      name: SHORT
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/memcached/crc32c.c
      type_or_value: '256'
    - item_type: preproc_def
      name: SHORTx1
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/memcached/crc32c.c
      type_or_value: '"256"'
    - item_type: preproc_def
      name: SHORTx2
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/memcached/crc32c.c
      type_or_value: '"512"'
    - item_type: preproc_def
      name: swap
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/memcached/crc32c.c
      type_or_value: __builtin_bswap64
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcp_new_request
  - mcp_set_request
  - mcp_request_render
  - mcp_request_append
  - mcp_request_attach
  - mcplib_request
  - mcplib_request_key
  - mcplib_request_ltrimkey
  - mcplib_request_rtrimkey
  - mcplib_request_raw_line
  - mcplib_request_raw_value
  - mcplib_request_token
  - mcplib_request_token_int
  - mcplib_request_ntokens
  - mcplib_request_command
  - mcplib_request_has_flag
  - mcplib_request_flag_token
  - mcplib_request_flag_token_int
  - _mcp_request_get_arg_flag
  - _mcp_request_check_flag_token
  - mcplib_request_flag_add
  - mcplib_request_flag_set
  - mcplib_request_flag_replace
  - mcplib_request_flag_del
  - _mcplib_request_match_check
  - mcplib_request_match_res
  - mcp_request_cleanup
  - mcplib_request_gc
  source_file: /src/memcached/proxy_request.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - base64_encode
  - base64_decode
  source_file: /src/memcached/base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _proxy_advance_lastkb
  - proxy_gc_poke
  - proxy_gc_timerpoke
  - proxy_bufmem_checkadd
  - proxy_stats
  - process_proxy_stats
  - process_proxy_funcstats
  - process_proxy_bestats
  - proxy_init
  - proxy_thread_init
  - proxy_submit_cb
  - proxy_return_rctx_cb
  - proxy_finalize_rctx_cb
  - try_read_command_proxy
  - proxy_cleanup_conn
  - complete_nread_proxy
  - proxy_lua_error
  - proxy_out_errstring
  - _set_noreply_mode
  - _proxy_run_rcontext_queues
  - _proxy_run_tresp_to_resp
  - proxy_run_rcontext
  - proxy_process_command
  - mcp_prep_bare_resobj
  - mcp_set_resobj
  - mcp_resp_set_elapsed
  - mcp_queue_rctx_io
  - mcp_sharedvm_delta
  - mcp_sharedvm_remove
  - mcp_gobj_enqueue
  - mcp_gobj_ref
  - mcp_gobj_unref
  - mcp_gobj_finalize
  - mcp_profile_alloc
  - dump_stack
  - dump_registry
  - dump_funcgen
  - dump_pool_info
  - dump_pools
  source_file: /src/memcached/proto_proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROCESS_MULTIGET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/memcached/proto_proxy.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: PROCESS_NORMAL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/memcached/proto_proxy.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: PROXY_GC_BACKGROUND_SECONDS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/memcached/proto_proxy.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PROXY_GC_DEFAULT_RATIO
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/memcached/proto_proxy.c
      type_or_value: '2.0'
    - item_type: preproc_def
      name: MAX_CMD_PREFIX
      pos:
        line_end: 963
        line_start: 962
        source_file: /src/memcached/proto_proxy.c
      type_or_value: '20'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/restart.h
  types:
    enum:
    - enumerators:
      - name: RESTART_OK
        value: '0'
      - name: RESTART_DONE
      - name: RESTART_BADLINE
      - name: RESTART_NOTAG
      item_type: enum
      name: restart_get_kv_ret
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/memcached/restart.h
    preproc_defs:
    - item_type: preproc_def
      name: RESTART_TAG_MAXLEN
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/memcached/restart.h
      type_or_value: '255'
    structs: []
    typedefs:
    - item_type: typedef
      name: mc_ptr_t
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/memcached/restart.h
      type: uint64_t
    - item_type: typedef
      name: mc_ptr_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/memcached/restart.h
      type: uint32_t
    - item_type: typedef
      name: (*restart_check_cb)(const char *tag, void *ctx, void *data)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/memcached/restart.h
      type: int
    - item_type: typedef
      name: (*restart_save_cb)(const char *tag, void *ctx, void *data)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/memcached/restart.h
      type: int
    union: []
- function_names:
  - XXH3_hash
  - hash_init
  source_file: /src/memcached/hash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcplib_funcgen_gc
  - mcp_funcgen_wait_handler
  - mcp_rcontext_cleanup
  - _mcplib_funcgen_cache
  - _mcplib_funcgen_gencall
  - _mcp_funcgen_return_rctx
  - mcp_funcgen_return_rctx
  - mcp_funcgen_get_rctx
  - mcp_funcgen_start
  - mcp_funcgen_cleanup
  - mcp_funcgen_reference
  - mcp_funcgen_dereference
  - _mcplib_funcgenbare_generator
  - mcplib_funcgenbare_new
  - mcplib_funcgen_new
  - mcplib_funcgen_new_handle
  - mcplib_funcgen_ready
  - mcplib_rcontext_handle_set_cb
  - _mcplib_rcontext_queue
  - mcplib_rcontext_enqueue
  - _mcp_resume_rctx_process_error
  - _mcp_start_rctx_process_error
  - mcp_start_subrctx
  - mcp_resume_rctx_from_cb
  - proxy_return_rqu_dummy_cb
  - mcp_process_rctx_wait
  - mcp_process_rqueue_return
  - proxy_return_rqu_cb
  - mcp_run_rcontext_handle
  - _mcplib_set_rctx_alarm
  - _mcplib_rcontext_wait_prep
  - mcplib_rcontext_wait_cond
  - mcplib_rcontext_enqueue_and_wait
  - mcplib_rcontext_wait_handle
  - mcplib_rcontext_sleep
  - _mcplib_rcontext_checkhandle
  - mcplib_rcontext_res_good
  - mcplib_rcontext_res_ok
  - mcplib_rcontext_res_any
  - mcplib_rcontext_result
  - mcplib_rcontext_best_result
  - mcplib_rcontext_worst_result
  - mcplib_rcontext_cfd
  - mcplib_rcontext_tls_peer_cn
  - _mcplib_rcontext_ref_uobj
  - mcplib_rcontext_request_new
  - mcplib_rcontext_response_new
  - mcp_rcontext_push_rqu_res
  - _mcp_router_shortsep
  - _mcp_router_longsep
  - _mcp_router_anchorsm
  - _mcp_router_anchorbig
  - _mcp_funcgen_route_fallback
  - mcp_funcgen_route
  - mcp_funcgen_router_cleanup
  - _mcplib_router_new_check
  - _mcplib_router_new_cmapcheck
  - _mcplib_router_new_mapcheck
  - _mcplib_router_new_mode
  - mcplib_router_new
  source_file: /src/memcached/proxy_luafgen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FGEN_FREE_PRESSURE_MAX
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/memcached/proxy_luafgen.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FGEN_FREE_PRESSURE_DROP
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/memcached/proxy_luafgen.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FGEN_FREE_WAIT
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/memcached/proxy_luafgen.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FGEN_FREE_PRESSURE_MAX
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/memcached/proxy_luafgen.c
      type_or_value: '5000'
    - item_type: preproc_def
      name: FGEN_FREE_PRESSURE_DROP
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/memcached/proxy_luafgen.c
      type_or_value: '200'
    - item_type: preproc_def
      name: FGEN_FREE_WAIT
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/memcached/proxy_luafgen.c
      type_or_value: 60 // seconds.
    - item_type: preproc_def
      name: FGEN_DEFAULT_FREELIST_SIZE
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/memcached/proxy_luafgen.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/cache.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (cache_free_s)
        type: STAILQ_ENTRY
      item_type: struct
      name: cache_free_s
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/memcached/cache.h
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: '*name'
        type: char
      - name: bufsize
        type: size_t
      - name: freetotal
        type: int
      - name: total
        type: int
      - name: freecurr
        type: int
      - name: limit
        type: int
      item_type: struct
      name: cache_t
      pos:
        line_end: 38
        line_start: 21
        source_file: /src/memcached/cache.h
    typedefs: []
    union: []
- function_names:
  - hashsize
  - hashmask
  - assoc_init
  - assoc_find
  - _hashitem_before
  - assoc_expand
  - assoc_start_expand
  - assoc_insert
  - assoc_delete
  - assoc_maintenance_thread
  - start_assoc_maintenance_thread
  - stop_assoc_maintenance_thread
  - assoc_get_iterator
  - assoc_iterate
  - assoc_iterate_final
  source_file: /src/memcached/assoc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_HASH_BULK_MOVE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/memcached/assoc.c
      type_or_value: '1'
    structs:
    - fields:
      - name: bucket
        type: uint64_t
      - name: '*it'
        type: item
      - name: '*next'
        type: item
      - name: bucket_locked
        type: bool
      item_type: struct
      name: assoc_iterator
      pos:
        line_end: 301
        line_start: 296
        source_file: /src/memcached/assoc.c
    typedefs: []
    union: []
- function_names:
  - TIMEVAL_TO_MILLIS
  - mcplib_ratelim_global_tbf_gc
  - mcplib_ratelim_proxy_tbf_gc
  - mcp_ratelim_proxy_tbf
  - _tbf_check
  - _setup_tbf
  - mcplib_ratelim_tbf
  - mcplib_ratelim_global_tbf
  - _update_tbf
  - mcplib_ratelim_tbf_call
  - mcplib_ratelim_proxy_tbf_call
  source_file: /src/memcached/proxy_ratelim.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bucket
        type: uint32_t
      - name: limit
        type: uint32_t
      - name: fill_rate
        type: uint32_t
      - name: tick_rate
        type: uint32_t
      - name: last_update
        type: int64_t
      item_type: struct
      name: mcp_ratelim_tbf
      pos:
        line_end: 11
        line_start: 5
        source_file: /src/memcached/proxy_ratelim.c
    - fields:
      - name: g
        type: struct mcp_globalobj_s
      - name: tbf
        type: struct mcp_ratelim_tbf
      item_type: struct
      name: mcp_ratelim_global_tbf
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/memcached/proxy_ratelim.c
    typedefs: []
    union: []
- function_names:
  - _storage_get_item_cb
  - _proxy_storage_get
  - proxy_storage_mg
  - proxy_storage_get
  - proxy_get_cmd
  - _mcplib_internal_run
  - mcplib_internal
  - mcp_rcontext_internal
  - mcplib_internal_run
  source_file: /src/memcached/proxy_internal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROXY_STORAGE_GET
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/memcached/proxy_internal.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PROXY_STORAGE_MG
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/memcached/proxy_internal.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _DO_CAS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/memcached/proxy_internal.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: _NO_CAS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/memcached/proxy_internal.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: _DO_TOUCH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/memcached/proxy_internal.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: _NO_TOUCH
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/memcached/proxy_internal.c
      type_or_value: 'false'
    structs: []
    typedefs: []
    union: []
- function_names:
  - drop_privileges
  - setup_privilege_violations_handler
  source_file: /src/memcached/freebsd_priv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - display
  - main
  source_file: /src/memcached/sizes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - res_buf
  - mcp_inspector_flag_c_g
  - mcp_inspector_flag_i_g
  - mcp_inspector_string_c_g
  - mcp_inspector_string_i_g
  - mcp_inspector_sepkey_c
  - mcp_inspector_sepkey_i
  - mcp_inspector_sepkey_r
  - mcp_inspector_keybegin_r
  - mcp_inspector_keyis_r
  - mcp_inspector_hasflag_r
  - mcp_inspector_flagtoken_r
  - mcp_inspector_flagint_r
  - mcp_inspector_flagstr_c
  - mcp_inspector_flagstr_i
  - mcp_inspector_flagis_r
  - mcp_inspector_steptype
  - mcp_inspector_new
  - mcp_ins_run
  - mcplib_req_inspector_new
  - mcplib_res_inspector_new
  - mcplib_inspector_gc
  - mcplib_inspector_call
  source_file: /src/memcached/proxy_inspector.c
  types:
    enum:
    - enumerators:
      - name: INS_REQ
        value: '1'
      - name: INS_RES
      item_type: enum
      name: mcp_ins_type
      pos:
        line_end: 7
        line_start: 4
        source_file: /src/memcached/proxy_inspector.c
    - enumerators:
      - name: mcp_ins_step_none
        value: '0'
      - name: mcp_ins_step_sepkey
      - name: mcp_ins_step_hasflag
      - name: mcp_ins_step_keybegin
      - name: mcp_ins_step_keyis
      - name: mcp_ins_step_flagtoken
      - name: mcp_ins_step_flagint
      - name: mcp_ins_step_flagis
      - name: mcp_ins_step_final
      item_type: enum
      name: mcp_ins_steptype
      pos:
        line_end: 19
        line_start: 9
        source_file: /src/memcached/proxy_inspector.c
    preproc_defs: []
    structs:
    - fields:
      - name: sep
        type: char
      - name: pos
        type: int
      - name: mapref
        type: int
      item_type: struct
      name: mcp_ins_sepkey
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/memcached/proxy_inspector.c
    - fields:
      - name: str
        type: unsigned int
      - name: len
        type: unsigned int
      item_type: struct
      name: mcp_ins_string
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/memcached/proxy_inspector.c
    - fields:
      - name: bit
        type: uint64_t
      - name: f
        type: char
      item_type: struct
      name: mcp_ins_flag
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/memcached/proxy_inspector.c
    - fields:
      - name: str
        type: unsigned int
      - name: len
        type: unsigned int
      - name: bit
        type: uint64_t
      - name: f
        type: char
      item_type: struct
      name: mcp_ins_flagstr
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/memcached/proxy_inspector.c
    - fields:
      - name: type
        type: enum mcp_ins_steptype
      - name: c
        type: "union {\n        struct mcp_ins_sepkey sepkey;\n        struct mcp_ins_string
          string;\n        struct mcp_ins_flag flag;\n        struct mcp_ins_flagstr
          flagstr;\n    }"
      item_type: struct
      name: mcp_ins_step
      pos:
        line_end: 57
        line_start: 49
        source_file: /src/memcached/proxy_inspector.c
    - fields:
      - name: type
        type: enum mcp_ins_type
      - name: scount
        type: int
      - name: aused
        type: unsigned int
      - name: rcount
        type: unsigned int
      - name: '*arena'
        type: char
      - name: steps[]
        type: struct mcp_ins_step
      item_type: struct
      name: mcp_inspector
      pos:
        line_end: 68
        line_start: 61
        source_file: /src/memcached/proxy_inspector.c
    - fields:
      - name: '*s'
        type: char
      - name: c
        type: mcp_ins_c
      - name: i
        type: mcp_ins_i
      - name: r
        type: mcp_ins_r
      - name: t
        type: unsigned int
      - name: n
        type: int
      item_type: struct
      name: mcp_ins_entry
      pos:
        line_end: 488
        line_start: 481
        source_file: /src/memcached/proxy_inspector.c
    typedefs:
    - item_type: typedef
      name: (*mcp_ins_c)(lua_State *L, int tidx)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/memcached/proxy_inspector.c
      type: int
    - item_type: typedef
      name: (*mcp_ins_i)(lua_State *L, int tidx, int sc, struct mcp_inspector *ins)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/memcached/proxy_inspector.c
      type: int
    - item_type: typedef
      name: (*mcp_ins_r)(lua_State *L, struct mcp_inspector *ins, struct mcp_ins_step
        *s, void *arg)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/memcached/proxy_inspector.c
      type: int
    union: []
- function_names:
  - slab_rebalance_start
  - slab_rebalance_alloc
  - slab_rebalance_prep
  - _slabs_locked_cb
  - slab_rebalance_rescue
  - slab_rebalance_active_rescue
  - slab_rebalance_move
  - slab_rebalance_finish
  - slab_rebalance_check_automove
  - slab_rebalance_thread
  - do_slabs_reassign
  - slabs_reassign
  - slab_maintenance_pause
  - slab_maintenance_resume
  - start_slab_maintenance_thread
  - stop_slab_maintenance_thread
  source_file: /src/memcached/slabs_mover.c
  types:
    enum:
    - enumerators:
      - name: MOVE_NONE
        value: '0'
      - name: MOVE_FROM_LRU
      - name: MOVE_FROM_SLAB
      - name: MOVE_BUSY
      - name: MOVE_PASS
      - name: MOVE_BUSY_UPLOADING
      - name: MOVE_BUSY_ACTIVE
      - name: MOVE_BUSY_FLOATING
      - name: MOVE_LOCKED
      item_type: enum
      name: move_status
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/memcached/slabs_mover.c
    preproc_defs:
    - item_type: preproc_def
      name: SLAB_MOVE_MAX_LOOPS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/memcached/slabs_mover.c
      type_or_value: '5000'
    structs:
    - fields:
      - name: '*slab_start'
        type: void
      - name: '*slab_end'
        type: void
      - name: '*slab_pos'
        type: void
      - name: s_clsid
        type: unsigned int
      - name: d_clsid
        type: unsigned int
      - name: cls_size
        type: uint32_t
      - name: busy_items
        type: uint32_t
      - name: rescues
        type: uint32_t
      - name: inline_reclaim
        type: uint32_t
      - name: chunk_rescues
        type: uint32_t
      - name: busy_nomem
        type: uint32_t
      - name: busy_deletes
        type: uint32_t
      - name: busy_loops
        type: uint32_t
      - name: last_busy_status
        type: int
      - name: done
        type: uint8_t
      - name: '*completed'
        type: uint8_t
      item_type: struct
      name: slab_rebalance
      pos:
        line_end: 37
        line_start: 20
        source_file: /src/memcached/slabs_mover.c
    - fields:
      - name: run_thread
        type: bool
      - name: allow_evictions
        type: bool
      - name: '*storage'
        type: void
      - name: '*new_it'
        type: item
      - name: lock
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: tid
        type: pthread_t
      - name: '*l'
        type: logger
      - name: am_version
        type: unsigned int
      - name: am_last
        type: struct timespec
      - name: '*sam'
        type: slab_automove_reg_t
      - name: '*active_am'
        type: void
      - name: rebal
        type: struct slab_rebalance
      item_type: struct
      name: slab_rebal_thread
      pos:
        line_end: 54
        line_start: 39
        source_file: /src/memcached/slabs_mover.c
    - fields:
      - name: '*it'
        type: item
      - name: '*ch'
        type: item_chunk
      - name: '*hold_lock'
        type: void
      - name: hv
        type: uint32_t
      - name: s_clsid
        type: unsigned int
      - name: d_clsid
        type: unsigned int
      item_type: struct
      name: _locked_st
      pos:
        line_end: 222
        line_start: 215
        source_file: /src/memcached/slabs_mover.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/proto_text.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CLEAR_LRU
  - GET_LRU
  source_file: /src/memcached/items.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOT_LRU
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/memcached/items.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WARM_LRU
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/memcached/items.h
      type_or_value: '64'
    - item_type: preproc_def
      name: COLD_LRU
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/memcached/items.h
      type_or_value: '128'
    - item_type: preproc_def
      name: TEMP_LRU
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/memcached/items.h
      type_or_value: '192'
    - item_type: preproc_def
      name: LRU_PULL_EVICT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/memcached/items.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LRU_PULL_CRAWL_BLOCKS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/memcached/items.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LRU_PULL_RETURN_ITEM
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/memcached/items.h
      type_or_value: '4 '
    structs:
    - fields:
      - name: '*it'
        type: item
      - name: hv
        type: uint32_t
      item_type: struct
      name: lru_pull_tail_return
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/memcached/items.h
    - fields:
      - name: evicted
        type: int64_t
      - name: outofmemory
        type: int64_t
      - name: age
        type: uint32_t
      item_type: struct
      name: item_stats_automove
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/memcached/items.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/bipbuffer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: unsigned long int
      - name: a_start
        type: unsigned int
      - name: b_end
        type: unsigned int
      - name: b_inuse
        type: int
      - name: data[]
        type: unsigned char
      item_type: struct
      name: bipbuf_t
      pos:
        line_end: 17
        line_start: 3
        source_file: /src/memcached/bipbuffer.h
    typedefs: []
    union: []
- function_names:
  - mcplib_dist_jump_hash_get_server
  - mcplib_dist_jump_hash_new
  - mcplib_open_dist_jump_hash
  source_file: /src/memcached/proxy_jump_hash.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: phc
        type: struct proxy_hash_caller
      - name: buckets
        type: unsigned int
      item_type: struct
      name: mcplib_jump_hash_t
      pos:
        line_end: 7
        line_start: 4
        source_file: /src/memcached/proxy_jump_hash.c
    typedefs: []
    union: []
- function_names:
  - QMD_TRACE_HEAD
  - QMD_TRACE_ELEM
  - QMD_SAVELINK
  - TRASHIT
  - QMD_IS_TRASHED
  - QMD_IS_TRASHED
  - QUEUE_TYPEOF
  - QUEUE_TYPEOF
  - SLIST_HEAD_INITIALIZER
  - QMD_SLIST_CHECK_PREVPTR
  - SLIST_CONCAT
  - SLIST_EMPTY
  - SLIST_FIRST
  - SLIST_FOREACH
  - SLIST_FOREACH_FROM
  - SLIST_FOREACH_SAFE
  - SLIST_FOREACH_FROM_SAFE
  - SLIST_FOREACH_PREVPTR
  - SLIST_INIT
  - SLIST_INSERT_AFTER
  - SLIST_INSERT_HEAD
  - SLIST_NEXT
  - SLIST_REMOVE
  - SLIST_REMOVE_AFTER
  - SLIST_REMOVE_HEAD
  - SLIST_REMOVE_PREVPTR
  - SLIST_SWAP
  - STAILQ_HEAD
  - STAILQ_CLASS_HEAD
  - STAILQ_HEAD_INITIALIZER
  - STAILQ_CONCAT
  - STAILQ_EMPTY
  - STAILQ_FIRST
  - STAILQ_FOREACH
  - STAILQ_FOREACH_FROM
  - STAILQ_FOREACH_SAFE
  - STAILQ_FOREACH_FROM_SAFE
  - STAILQ_INIT
  - STAILQ_INSERT_AFTER
  - STAILQ_INSERT_HEAD
  - STAILQ_INSERT_TAIL
  - STAILQ_LAST
  - STAILQ_NEXT
  - STAILQ_REMOVE
  - STAILQ_REMOVE_AFTER
  - STAILQ_REMOVE_HEAD
  - STAILQ_SWAP
  - LIST_HEAD_INITIALIZER
  - LIST_ENTRY
  - LIST_CLASS_ENTRY
  - QMD_LIST_CHECK_HEAD
  - QMD_LIST_CHECK_NEXT
  - QMD_LIST_CHECK_PREV
  - LIST_CONCAT
  - LIST_EMPTY
  - LIST_FIRST
  - LIST_FOREACH
  - LIST_FOREACH_FROM
  - LIST_FOREACH_SAFE
  - LIST_FOREACH_FROM_SAFE
  - LIST_INIT
  - LIST_INSERT_AFTER
  - LIST_INSERT_BEFORE
  - LIST_INSERT_HEAD
  - LIST_NEXT
  - LIST_PREV
  - LIST_REMOVE
  - LIST_SWAP
  - TAILQ_HEAD
  - TAILQ_CLASS_HEAD
  - TAILQ_HEAD_INITIALIZER
  - TAILQ_ENTRY
  - TAILQ_CLASS_ENTRY
  - QMD_TAILQ_CHECK_HEAD
  - QMD_TAILQ_CHECK_TAIL
  - QMD_TAILQ_CHECK_NEXT
  - QMD_TAILQ_CHECK_PREV
  - TAILQ_CONCAT
  - TAILQ_EMPTY
  - TAILQ_FIRST
  - TAILQ_FOREACH
  - TAILQ_FOREACH_FROM
  - TAILQ_FOREACH_SAFE
  - TAILQ_FOREACH_FROM_SAFE
  - TAILQ_FOREACH_REVERSE
  - TAILQ_FOREACH_REVERSE_FROM
  - TAILQ_FOREACH_REVERSE_SAFE
  - TAILQ_FOREACH_REVERSE_FROM_SAFE
  - TAILQ_INIT
  - TAILQ_INSERT_AFTER
  - TAILQ_INSERT_BEFORE
  - TAILQ_INSERT_HEAD
  - TAILQ_INSERT_TAIL
  - TAILQ_LAST
  - TAILQ_LAST_FAST
  - TAILQ_NEXT
  - TAILQ_PREV
  - TAILQ_PREV_FAST
  - TAILQ_REMOVE
  - TAILQ_SWAP
  source_file: /src/memcached/queue.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACEBUF
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/memcached/queue.h
      type_or_value: struct qm_trace trace;
    - item_type: preproc_def
      name: TRACEBUF_INITIALIZER
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/memcached/queue.h
      type_or_value: '{ __LINE__, 0, __FILE__, NULL } ,'
    structs:
    - fields:
      - name: lastline
        type: unsigned long
      - name: prevline
        type: unsigned long
      - name: '*lastfile'
        type: char
      - name: '*prevfile'
        type: char
      item_type: struct
      name: qm_trace
      pos:
        line_end: 130
        line_start: 125
        source_file: /src/memcached/queue.h
    typedefs: []
    union: []
- function_names:
  - hashsize
  - hashmask
  - item_lock
  - item_trylock
  - item_trylock_unlock
  - item_unlock
  - wait_for_thread_registration
  - register_thread_initialized
  - pause_threads
  - stop_threads
  - cq_init
  - cq_pop
  - cq_push
  - cqi_new
  - cqi_free
  - notify_worker
  - notify_worker_fd
  - create_worker
  - accept_new_conns
  - setup_thread_notify
  - setup_thread
  - worker_libevent
  - thread_libevent_ionotify
  - thread_libevent_process
  - thread_setname
  - get_worker_thread
  - select_thread_round_robin
  - reset_threads_napi_id
  - select_thread_by_napi_id
  - dispatch_conn_new
  - redispatch_conn
  - timeout_conn
  - proxy_reload_notify
  - return_io_pending
  - sidethread_conn_close
  - item_alloc
  - item_get
  - item_get_locked
  - item_touch
  - item_remove
  - item_replace
  - item_unlink
  - add_delta
  - store_item
  - STATS_LOCK
  - STATS_UNLOCK
  - threadlocal_stats_reset
  - X
  - threadlocal_stats_aggregate
  - X
  - X
  - slab_stats_aggregate
  - X
  - memcached_thread_notify_init
  - memcached_thread_init
  source_file: /src/memcached/thread.c
  types:
    enum:
    - enumerators:
      - name: queue_new_conn
      - name: queue_stop
      - name: queue_pause
      - name: queue_timeout
      - name: queue_redispatch
      - name: queue_proxy_reload
      item_type: enum
      name: conn_queue_item_modes
      pos:
        line_end: 39
        line_start: 30
        source_file: /src/memcached/thread.c
    preproc_defs:
    - item_type: preproc_def
      name: ITEMS_PER_ALLOC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/memcached/thread.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_PIPE_EVENTS
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/memcached/thread.c
      type_or_value: '32'
    - item_type: preproc_def
      name: THR_NAME_MAXLEN
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/memcached/thread.c
      type_or_value: '16'
    structs:
    - fields:
      - name: sfd
        type: int
      - name: init_state
        type: enum conn_states
      - name: event_flags
        type: int
      - name: read_buffer_size
        type: int
      - name: transport
        type: enum network_transport
      - name: mode
        type: enum conn_queue_item_modes
      - name: '*c'
        type: conn
      - name: '*ssl'
        type: void
      - name: conntag
        type: uint64_t
      - name: bproto
        type: enum protocol
      - name: '*io'
        type: io_pending_t
      - name: (conn_queue_item)
        type: STAILQ_ENTRY
      item_type: struct
      name: conn_queue_item
      pos:
        line_end: 54
        line_start: 41
        source_file: /src/memcached/thread.c
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: '*cache'
        type: cache_t
      item_type: struct
      name: conn_queue
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/memcached/thread.c
    typedefs:
    - item_type: typedef
      name: CQ_ITEM
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/memcached/thread.c
      type: conn_queue_item
    - item_type: typedef
      name: CQ
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/memcached/thread.c
      type: conn_queue
    union: []
- function_names:
  - P_DEBUG
  - WSTAT_L
  - WSTAT_UL
  - WSTAT_INCR
  - WSTAT_DECR
  - STAT_L
  - STAT_UL
  - STAT_INCR
  - STAT_DECR
  - NANOSECONDS
  - MICROSECONDS
  - PROXY_GET_THR_CTX
  - PROXY_GET_THR
  - PROXY_GET_CTX
  - mcp_is_flag_invalid
  - proxy_lua_ferror
  source_file: /src/memcached/proxy.h
  types:
    enum:
    - enumerators:
      - name: mcp_memp_free
        value: '0'
      - name: mcp_memp_userdata
      - name: mcp_memp_string
      - name: mcp_memp_func
      - name: mcp_memp_table
      - name: mcp_memp_thread
      - name: mcp_memp_default
      - name: mcp_memp_realloc
      item_type: enum
      name: mcp_memprofile_types
      pos:
        line_end: 80
        line_start: 71
        source_file: /src/memcached/proxy.h
    - enumerators:
      - name: mcp_backend_read
        value: '0'
      - name: mcp_backend_parse
      - name: mcp_backend_want_read
      - name: mcp_backend_next
      - name: mcp_backend_read_end
      - name: mcp_backend_next_close
      item_type: enum
      name: mcp_backend_states
      pos:
        line_end: 261
        line_start: 254
        source_file: /src/memcached/proxy.h
    - enumerators:
      - name: QWAIT_IDLE
        value: '0'
      - name: QWAIT_OK
      - name: QWAIT_ANY
      - name: QWAIT_FASTGOOD
      - name: QWAIT_GOOD
      - name: QWAIT_HANDLE
      - name: QWAIT_SLEEP
      item_type: enum
      name: mcp_rqueue_e
      pos:
        line_end: 556
        line_start: 548
        source_file: /src/memcached/proxy.h
    - enumerators:
      - name: FGEN_ROUTER_NONE
        value: '0'
      - name: FGEN_ROUTER_ANCHORSM
      - name: FGEN_ROUTER_SHORTSEP
      - name: FGEN_ROUTER_CMDMAP
      - name: FGEN_ROUTER_LONGSEP
      - name: FGEN_ROUTER_ANCHORBIG
      item_type: enum
      name: mcp_funcgen_router_e
      pos:
        line_end: 587
        line_start: 580
        source_file: /src/memcached/proxy.h
    - enumerators:
      - name: RQUEUE_IDLE
        value: '0'
      - name: RQUEUE_COMPLETE
      - name: RQUEUE_ACTIVE
      - name: RQUEUE_WAITED
      - name: RQUEUE_QUEUED
      item_type: enum
      name: mcp_rqueue_state
      pos:
        line_end: 633
        line_start: 627
        source_file: /src/memcached/proxy.h
    preproc_defs:
    - item_type: preproc_def
      name: USE_EVENTFD
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/memcached/proxy.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PRING_QUEUE_SQ_ENTRIES
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/memcached/proxy.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: PRING_QUEUE_CQ_ENTRIES
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/memcached/proxy.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: MCP_REQUEST_MAXLEN
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/memcached/proxy.h
      type_or_value: KEY_MAX_LENGTH * 2
    - item_type: preproc_def
      name: ENDSTR
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/memcached/proxy.h
      type_or_value: '"END\r\n"'
    - item_type: preproc_def
      name: ENDLEN
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/memcached/proxy.h
      type_or_value: (sizeof(ENDSTR)-1)
    - item_type: preproc_def
      name: MCP_BACKEND_UPVALUE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/memcached/proxy.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MCP_YIELD_INTERNAL
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/memcached/proxy.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MCP_YIELD_WAITCOND
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/memcached/proxy.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MCP_YIELD_WAITHANDLE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/memcached/proxy.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MCP_YIELD_SLEEP
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/memcached/proxy.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SHAREDVM_FGEN_IDX
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/memcached/proxy.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHAREDVM_FGENSLOT_IDX
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/memcached/proxy.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SHAREDVM_BACKEND_IDX
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/memcached/proxy.h
      type_or_value: '3'
    - item_type: preproc_def
      name: P_OK
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/memcached/proxy.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PARSER_MAX_TOKENS
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/memcached/proxy.h
      type_or_value: '24'
    - item_type: preproc_def
      name: MAX_REQ_TOKENS
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/memcached/proxy.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_LABELLEN
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/memcached/proxy.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MAX_NAMELEN
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/memcached/proxy.h
      type_or_value: '255'
    - item_type: preproc_def
      name: MAX_PORTLEN
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/memcached/proxy.h
      type_or_value: '6'
    - item_type: preproc_def
      name: BE_IOV_MAX
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/memcached/proxy.h
      type_or_value: 128 // let bench tests trigger max condition easily
    - item_type: preproc_def
      name: BE_IOV_MAX
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/memcached/proxy.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: BE_IOV_MAX
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/memcached/proxy.h
      type_or_value: IOV_MAX
    - item_type: preproc_def
      name: RESP_CMD_MAX
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/memcached/proxy.h
      type_or_value: '8'
    - item_type: preproc_def
      name: KEY_HASH_FILTER_MAX
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/memcached/proxy.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_USTATS_DEFAULT
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/memcached/proxy.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: FGEN_NAME_MAXLEN
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/memcached/proxy.h
      type_or_value: '80'
    - item_type: preproc_def
      name: RQUEUE_TYPE_NONE
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/memcached/proxy.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RQUEUE_TYPE_POOL
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/memcached/proxy.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RQUEUE_TYPE_INT
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/memcached/proxy.h
      type_or_value: '2'
    - item_type: preproc_def
      name: RQUEUE_TYPE_FGEN
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/memcached/proxy.h
      type_or_value: '3'
    - item_type: preproc_def
      name: RQUEUE_TYPE_UOBJ
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/memcached/proxy.h
      type_or_value: 4 // user tracked object types past this point
    - item_type: preproc_def
      name: RQUEUE_TYPE_UOBJ_REQ
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/memcached/proxy.h
      type_or_value: '5'
    - item_type: preproc_def
      name: RQUEUE_TYPE_UOBJ_RES
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/memcached/proxy.h
      type_or_value: '6'
    - item_type: preproc_def
      name: RQUEUE_ASSIGNED
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/memcached/proxy.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: RQUEUE_R_RESUME
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/memcached/proxy.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: RQUEUE_R_GOOD
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/memcached/proxy.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: RQUEUE_R_OK
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/memcached/proxy.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: RQUEUE_R_ANY
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/memcached/proxy.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: RQUEUE_R_ERROR
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/memcached/proxy.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: RQUEUE_UOBJ_MAX
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/memcached/proxy.h
      type_or_value: UINT8_MAX
    - item_type: preproc_def
      name: PROXY_SERVER_ERROR
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/memcached/proxy.h
      type_or_value: '"SERVER_ERROR "'
    - item_type: preproc_def
      name: PROXY_CLIENT_ERROR
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/memcached/proxy.h
      type_or_value: '"CLIENT_ERROR "'
    structs:
    - fields:
      - name: last_status
        type: struct timespec
      - name: id
        type: int
      - name: allocs[8]
        type: uint64_t
      - name: alloc_bytes[8]
        type: uint64_t
      item_type: struct
      name: mcp_memprofile
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/memcached/proxy.h
    - fields:
      - name: '*udata'
        type: void
      - name: cb
        type: proxy_event_cb
      - name: set
        type: bool
      item_type: struct
      name: proxy_event_t
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/memcached/proxy.h
    - fields:
      - name: vm_gc_runs
        type: uint64_t
      - name: vm_memory_kb
        type: uint64_t
      - name: counters[CMD_FINAL]
        type: uint64_t
      item_type: struct
      name: proxy_int_stats
      pos:
        line_end: 133
        line_start: 129
        source_file: /src/memcached/proxy.h
    - fields:
      - name: num_stats
        type: int
      - name: '*counters'
        type: uint64_t
      item_type: struct
      name: proxy_user_stats
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/memcached/proxy.h
    - fields:
      - name: '*name'
        type: char
      - name: cname
        type: unsigned int
      - name: reset
        type: bool
      item_type: struct
      name: proxy_user_stats_entry
      pos:
        line_end: 144
        line_start: 140
        source_file: /src/memcached/proxy.h
    - fields:
      - name: config_reloads
        type: uint64_t
      - name: config_reload_fails
        type: uint64_t
      - name: config_cron_runs
        type: uint64_t
      - name: config_cron_fails
        type: uint64_t
      - name: backend_total
        type: uint64_t
      - name: backend_marked_bad
        type: uint64_t
      - name: backend_failed
        type: uint64_t
      - name: request_failed_depth
        type: uint64_t
      item_type: struct
      name: proxy_global_stats
      pos:
        line_end: 155
        line_start: 146
        source_file: /src/memcached/proxy.h
    - fields:
      - name: connect
        type: struct timeval
      - name: retry
        type: struct timeval
      - name: read
        type: struct timeval
      - name: flap
        type: struct timeval
      - name: flap_backoff_ramp
        type: float
      - name: gc_ratio
        type: float
      - name: flap_backoff_max
        type: uint32_t
      - name: backend_depth_limit
        type: int
      - name: backend_failure_limit
        type: int
      - name: max_ustats
        type: int
      - name: tcp_keepalive
        type: bool
      - name: use_iothread
        type: bool
      - name: use_tls
        type: bool
      - name: down
        type: bool
      item_type: struct
      name: proxy_tunables
      pos:
        line_end: 172
        line_start: 157
        source_file: /src/memcached/proxy.h
    - fields:
      - name: deadline
        type: unsigned int
      - name: rate
        type: unsigned int
      - name: all_errors
        type: bool
      - name: '*detail'
        type: char
      item_type: struct
      name: proxy_logging
      pos:
        line_end: 179
        line_start: 174
        source_file: /src/memcached/proxy.h
    - fields:
      - name: '*proxy_state'
        type: lua_State
      - name: '*proxy_io_thread'
        type: proxy_event_thread_t
      - name: active_req_limit
        type: int64_t
      - name: buffer_memory_limit
        type: uint64_t
      - name: user_stats_num
        type: int
      - name: '*user_stats'
        type: struct proxy_user_stats_entry
      - name: '*user_stats_namebuf'
        type: char
      - name: tunables
        type: struct proxy_tunables
      - name: global_stats
        type: struct proxy_global_stats
      - name: '*proxy_code'
        type: void
      - name: '*proxy_sharedvm'
        type: lua_State
      - name: stats_lock
        type: pthread_mutex_t
      - name: config_lock
        type: pthread_mutex_t
      - name: config_cond
        type: pthread_cond_t
      - name: config_tid
        type: pthread_t
      - name: worker_lock
        type: pthread_mutex_t
      - name: worker_cond
        type: pthread_cond_t
      - name: manager_tid
        type: pthread_t
      - name: manager_lock
        type: pthread_mutex_t
      - name: manager_cond
        type: pthread_cond_t
      - name: sharedvm_lock
        type: pthread_mutex_t
      - name: manager_head
        type: globalobj_head_t
      - name: config_generation
        type: int
      - name: cron_ref
        type: int
      - name: cron_next
        type: int
      - name: worker_done
        type: bool
      - name: worker_failed
        type: bool
      - name: use_uring
        type: bool
      - name: loading
        type: bool
      - name: memprofile
        type: bool
      - name: memprofile_thread_counter
        type: uint8_t
      item_type: struct
      name: proxy_ctx_t
      pos:
        line_end: 218
        line_start: 182
        source_file: /src/memcached/proxy.h
    - fields:
      - name: lua_ref
        type: int
      - name: '*ctx'
        type: void
      item_type: struct
      name: proxy_hook_ref
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/memcached/proxy.h
    - fields:
      - name: tag
        type: uint64_t
      - name: ref
        type: struct proxy_hook_ref
      item_type: struct
      name: proxy_hook_tagged
      pos:
        line_end: 233
        line_start: 230
        source_file: /src/memcached/proxy.h
    - fields:
      - name: ref
        type: struct proxy_hook_ref
      - name: tagcount
        type: int
      - name: '*tagged'
        type: struct proxy_hook_tagged
      item_type: struct
      name: proxy_hook
      pos:
        line_end: 239
        line_start: 235
        source_file: /src/memcached/proxy.h
    - fields:
      - name: func
        type: key_hash_func
      item_type: struct
      name: proxy_hash_func
      pos:
        line_end: 246
        line_start: 244
        source_file: /src/memcached/proxy.h
    - fields:
      - name: selector_func
        type: hash_selector_func
      - name: '*ctx'
        type: void
      item_type: struct
      name: proxy_hash_caller
      pos:
        line_end: 252
        line_start: 249
        source_file: /src/memcached/proxy.h
    - fields:
      - name: pr
        type: mcp_parser_t
      - name: request[]
        type: char
      item_type: struct
      name: mcp_request_s
      pos:
        line_end: 277
        line_start: 274
        source_file: /src/memcached/proxy.h
    - fields:
      - name: gen
        type: uint32_t
      - name: next
        type: uint32_t
      - name: every
        type: uint32_t
      - name: repeat
        type: bool
      item_type: struct
      name: mcp_cron_s
      pos:
        line_end: 284
        line_start: 279
        source_file: /src/memcached/proxy.h
    - fields:
      - name: name[MAX_NAMELEN+1]
        type: char
      - name: port[MAX_PORTLEN+1]
        type: char
      - name: label[MAX_LABELLEN+1]
        type: char
      - name: llen
        type: size_t
      - name: conncount
        type: int
      - name: use_logging
        type: bool
      - name: tunables
        type: struct proxy_tunables
      - name: logging
        type: struct proxy_logging
      item_type: struct
      name: mcp_backend_label_s
      pos:
        line_end: 309
        line_start: 300
        source_file: /src/memcached/proxy.h
    - fields:
      - name: '*be'
        type: mcp_backend_t
      item_type: struct
      name: mcp_backend_wrap_s
      pos:
        line_end: 318
        line_start: 316
        source_file: /src/memcached/proxy.h
    - fields:
      - name: '*be_parent'
        type: mcp_backend_t
      - name: self
        type: int
      - name: depth
        type: int
      - name: pending_read
        type: int
      - name: failed_count
        type: int
      - name: flap_count
        type: int
      - name: '*event_thread'
        type: proxy_event_thread_t
      - name: '*client'
        type: void
      - name: iop_write
        type: iop_head_t
      - name: iop_read
        type: iop_head_t
      - name: '*rbuf'
        type: char
      - name: rbufused
        type: size_t
      - name: main_event
        type: struct event
      - name: write_event
        type: struct event
      - name: timeout_event
        type: struct event
      - name: tunables
        type: struct proxy_tunables
      - name: last_failed
        type: struct timeval
      - name: state
        type: enum mcp_backend_states
      - name: connect_flags
        type: int
      - name: connecting
        type: bool
      - name: validating
        type: bool
      - name: can_write
        type: bool
      - name: bad
        type: bool
      - name: write_iovs[BE_IOV_MAX]
        type: struct iovec
      item_type: struct
      name: mcp_backendconn_s
      pos:
        line_end: 351
        line_start: 320
        source_file: /src/memcached/proxy.h
    - fields:
      - name: conncount
        type: int
      - name: depth
        type: int
      - name: transferred
        type: bool
      - name: use_io_thread
        type: bool
      - name: stacked
        type: bool
      - name: use_logging
        type: bool
      - name: (mcp_backend_s)
        type: STAILQ_ENTRY
      - name: (mcp_backend_s)
        type: STAILQ_ENTRY
      - name: iop_head
        type: iop_head_t
      - name: logging
        type: struct proxy_logging
      - name: tunables
        type: struct proxy_tunables
      - name: name[MAX_NAMELEN+1]
        type: char
      - name: port[MAX_PORTLEN+1]
        type: char
      - name: label[MAX_LABELLEN+1]
        type: char
      - name: be[]
        type: struct mcp_backendconn_s
      item_type: struct
      name: mcp_backend_s
      pos:
        line_end: 371
        line_start: 355
        source_file: /src/memcached/proxy.h
    - fields:
      - name: thread_id
        type: pthread_t
      - name: '*base'
        type: struct event_base
      - name: notify_event
        type: struct event
      - name: beconn_event
        type: struct event
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: iop_head_in
        type: iop_head_t
      - name: be_head
        type: be_head_t
      - name: beconn_head_in
        type: beconn_head_t
      - name: '*ctx'
        type: proxy_ctx_t
      item_type: struct
      name: proxy_event_thread_s
      pos:
        line_end: 407
        line_start: 375
        source_file: /src/memcached/proxy.h
    - fields:
      - name: resp
        type: mcmc_resp_t
      - name: tok
        type: mcmc_tokenizer_t
      - name: '*buf'
        type: char
      - name: '*cresp'
        type: mc_resp
      - name: '*thread'
        type: LIBEVENT_THREAD
      - name: '*be'
        type: mcp_backend_t
      - name: blen
        type: unsigned int
      - name: start
        type: struct timeval
      - name: elapsed
        type: long
      - name: status
        type: int
      - name: bread
        type: int
      - name: cmd
        type: uint8_t
      item_type: struct
      name: mcp_resp_t
      pos:
        line_end: 423
        line_start: 410
        source_file: /src/memcached/proxy.h
    - fields:
      - name: io_queue_type
        type: uint8_t
      - name: io_sub_type
        type: uint8_t
      - name: payload
        type: uint8_t
      - name: '*thread'
        type: LIBEVENT_THREAD
      - name: '*c'
        type: conn
      - name: '*resp'
        type: mc_resp
      - name: return_cb
        type: io_queue_cb
      - name: finalize_cb
        type: io_queue_cb
      - name: (io_pending_t)
        type: STAILQ_ENTRY
      - name: '*rctx'
        type: mcp_rcontext_t
      - name: '*client_resp'
        type: mcp_resp_t
      - name: queue_handle
        type: int
      item_type: struct
      name: _io_pending_proxy_t
      pos:
        line_end: 464
        line_start: 427
        source_file: /src/memcached/proxy.h
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: (mcp_globalobj_s)
        type: STAILQ_ENTRY
      - name: refcount
        type: int
      - name: self_ref
        type: int
      item_type: struct
      name: mcp_globalobj_s
      pos:
        line_end: 471
        line_start: 466
        source_file: /src/memcached/proxy.h
    - fields:
      - name: ref
        type: int
      - name: '*be'
        type: mcp_backend_t
      item_type: struct
      name: mcp_pool_be_t
      pos:
        line_end: 479
        line_start: 476
        source_file: /src/memcached/proxy.h
    - fields:
      - name: phc
        type: struct proxy_hash_caller
      - name: key_filter
        type: key_hash_filter_func
      - name: key_hasher
        type: key_hash_func
      - name: '*ctx'
        type: proxy_ctx_t
      - name: key_filter_conf[KEY_HASH_FILTER_MAX+1]
        type: char
      - name: g
        type: struct mcp_globalobj_s
      - name: beprefix[MAX_LABELLEN+1]
        type: char
      - name: hash_seed
        type: uint64_t
      - name: pool_size
        type: int
      - name: pool_be_total
        type: int
      - name: phc_ref
        type: int
      - name: use_iothread
        type: bool
      - name: pool[]
        type: mcp_pool_be_t
      item_type: struct
      name: mcp_pool_s
      pos:
        line_end: 497
        line_start: 483
        source_file: /src/memcached/proxy.h
    - fields:
      - name: '*main'
        type: mcp_pool_t
      - name: '*pool'
        type: mcp_pool_be_t
      item_type: struct
      name: mcp_pool_proxy_t
      pos:
        line_end: 502
        line_start: 499
        source_file: /src/memcached/proxy.h
    - fields:
      - name: '*thread'
        type: LIBEVENT_THREAD
      - name: generator_ref
        type: int
      - name: self_ref
        type: int
      - name: argument_ref
        type: int
      - name: max_queues
        type: int
      - name: uobj_queues
        type: int
      - name: refcount
        type: unsigned int
      - name: total
        type: unsigned int
      - name: free
        type: unsigned int
      - name: free_max
        type: unsigned int
      - name: free_pressure
        type: unsigned int
      - name: closed
        type: bool
      - name: ready
        type: bool
      - name: is_router
        type: bool
      - name: free_waiter
        type: struct timespec
      - name: '**list'
        type: mcp_rcontext_t
      - name: '*queue_list'
        type: struct mcp_rqueue_s
      - name: name[FGEN_NAME_MAXLEN+1]
        type: char
      item_type: struct
      name: mcp_funcgen_s
      pos:
        line_end: 578
        line_start: 559
        source_file: /src/memcached/proxy.h
    - fields:
      - name: start[KEY_HASH_FILTER_MAX+1]
        type: char
      - name: stop[KEY_HASH_FILTER_MAX+1]
        type: char
      item_type: struct
      name: mcp_router_long_s
      pos:
        line_end: 592
        line_start: 589
        source_file: /src/memcached/proxy.h
    - fields:
      - name: fgen_self
        type: mcp_funcgen_t
      - name: type
        type: enum mcp_funcgen_router_e
      - name: conf
        type: "union {\n        char sep;\n        char lsep[KEY_HASH_FILTER_MAX+1];\n
          \       char anchorsm[2]; // short anchored mode.\n        struct mcp_router_long_s
          big;\n    }"
      - name: map_ref
        type: int
      - name: '*def_fgen'
        type: mcp_funcgen_t
      - name: '*cmap[CMD_END_STORAGE]'
        type: mcp_funcgen_t
      item_type: struct
      name: mcp_funcgen_router
      pos:
        line_end: 610
        line_start: 598
        source_file: /src/memcached/proxy.h
    - fields:
      - name: obj_ref
        type: int
      - name: cb_ref
        type: int
      - name: req_ref
        type: int
      - name: res_ref
        type: int
      - name: '*obj'
        type: void
      - name: '*rq'
        type: mcp_request_t
      - name: '*res_obj'
        type: mcp_resp_t
      - name: state
        type: enum mcp_rqueue_state
      - name: obj_type
        type: uint8_t
      - name: flags
        type: uint8_t
      item_type: struct
      name: mcp_rqueue_s
      pos:
        line_end: 646
        line_start: 635
        source_file: /src/memcached/proxy.h
    - fields:
      - name: self_ref
        type: int
      - name: request_ref
        type: int
      - name: function_ref
        type: int
      - name: coroutine_ref
        type: int
      - name: pending_reqs
        type: int
      - name: wait_count
        type: unsigned int
      - name: wait_done
        type: unsigned int
      - name: wait_handle
        type: int
      - name: parent_handle
        type: int
      - name: conn_fd
        type: int
      - name: wait_mode
        type: enum mcp_rqueue_e
      - name: lua_narg
        type: uint8_t
      - name: uobj_count
        type: uint8_t
      - name: ascii_multiget
        type: bool
      - name: '*Lc'
        type: lua_State
      - name: '*request'
        type: mcp_request_t
      - name: '*parent'
        type: mcp_rcontext_t
      - name: '*c'
        type: conn
      - name: '*resp'
        type: mc_resp
      - name: '*fgen'
        type: mcp_funcgen_t
      - name: timeout_event
        type: struct event
      - name: qslots[]
        type: struct mcp_rqueue_s
      item_type: struct
      name: mcp_rcontext_s
      pos:
        line_end: 671
        line_start: 648
        source_file: /src/memcached/proxy.h
    typedefs:
    - item_type: typedef
      name: io_pending_proxy_t
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/memcached/proxy.h
      type: _io_pending_proxy_t
    - item_type: typedef
      name: proxy_event_thread_t
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/memcached/proxy.h
      type: proxy_event_thread_s
    - item_type: typedef
      name: (*proxy_event_cb)(void *udata, struct io_uring_cqe *cqe)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/memcached/proxy.h
      type: void
    - item_type: typedef
      name: (globalobj_head_s, mcp_globalobj_s)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/memcached/proxy.h
      type: STAILQ_HEAD
    - item_type: typedef
      name: (*key_hash_func)(const void *key, size_t len, uint64_t seed)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/memcached/proxy.h
      type: uint64_t
    - item_type: typedef
      name: '*(*key_hash_filter_func)(const char *conf, const char *key, size_t klen,
        size_t *newlen)'
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/memcached/proxy.h
      type: char
    - item_type: typedef
      name: (*hash_selector_func)(uint64_t hash, void *ctx)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/memcached/proxy.h
      type: uint32_t
    - item_type: typedef
      name: mcp_cron_t
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/memcached/proxy.h
      type: mcp_cron_s
    - item_type: typedef
      name: mcp_backend_wrap_t
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/memcached/proxy.h
      type: mcp_backend_wrap_s
    - item_type: typedef
      name: mcp_backend_label_t
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/memcached/proxy.h
      type: mcp_backend_label_s
    - item_type: typedef
      name: mcp_backend_t
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/memcached/proxy.h
      type: mcp_backend_s
    - item_type: typedef
      name: mcp_request_t
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/memcached/proxy.h
      type: mcp_request_s
    - item_type: typedef
      name: mcp_rcontext_t
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/memcached/proxy.h
      type: mcp_rcontext_s
    - item_type: typedef
      name: mcp_funcgen_t
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/memcached/proxy.h
      type: mcp_funcgen_s
    - item_type: typedef
      name: (be_head_s, mcp_backend_s)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/memcached/proxy.h
      type: STAILQ_HEAD
    - item_type: typedef
      name: (beconn_head_s, mcp_backend_s)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/memcached/proxy.h
      type: STAILQ_HEAD
    - item_type: typedef
      name: mcp_pool_t
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/memcached/proxy.h
      type: mcp_pool_s
    union: []
- function_names:
  - signal_handler
  - wait_for_process
  - spawn_and_wait
  - usage
  - main
  source_file: /src/memcached/timedrun.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sasl_server_userdb_checkpass
  - sasl_getconf
  - sasl_log
  - init_sasl
  source_file: /src/memcached/sasl_defs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ENTRY_LEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/memcached/sasl_defs.c
      type_or_value: '256'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*sasl_callback_ft)(void)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/memcached/sasl_defs.c
      type: int
    union: []
- function_names: []
  source_file: /src/memcached/jenkins_hash.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/crc32c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*crc_func)(uint32_t crc, const void *buf, size_t len)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/memcached/crc32c.h
      type: uint32_t
    union: []
- function_names:
  - drop_privileges
  - setup_privilege_violations_handler
  source_file: /src/memcached/solaris_priv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bipbuf_sizeof
  - bipbuf_unused
  - bipbuf_size
  - bipbuf_used
  - bipbuf_init
  - bipbuf_new
  - bipbuf_free
  - bipbuf_is_empty
  - __check_for_switch_to_b
  - bipbuf_request
  - bipbuf_push
  - bipbuf_offer
  - bipbuf_peek
  - bipbuf_peek_all
  - bipbuf_poll
  source_file: /src/memcached/bipbuffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - item_stats_reset
  - do_item_stats_add_crawl
  - get_cas_id
  - set_cas_id
  - item_is_flushed
  - do_get_lru_size
  - DEBUG_REFCNT
  - DEBUG_REFCNT
  - item_make_header
  - do_item_alloc_pull
  - do_item_alloc_chunk
  - do_item_alloc
  - item_free
  - item_size_ok
  - do_item_link_fixup
  - do_item_link_q
  - item_link_q
  - item_link_q_warm
  - do_item_unlink_q
  - item_unlink_q
  - do_item_link
  - do_item_unlink
  - do_item_unlink_nolock
  - do_item_remove
  - do_item_update
  - do_item_replace
  - item_flush_expired
  - item_cachedump
  - fill_item_stats_automove
  - item_stats_totals
  - item_stats
  - item_stats_sizes_status
  - item_stats_sizes_init
  - item_stats_sizes_add
  - item_stats_sizes_remove
  - item_stats_sizes
  - do_item_get
  - do_item_bump
  - do_item_touch
  - lru_pull_tail
  - lru_bump_buf_link_q
  - item_lru_bump_buf_create
  - lru_bump_async
  - lru_maintainer_bumps
  - lru_total_bumps_dropped
  - lru_maintainer_juggle
  - lru_maintainer_crawler_check
  - lru_maintainer_thread
  - stop_lru_maintainer_thread
  - start_lru_maintainer_thread
  - lru_maintainer_pause
  - lru_maintainer_resume
  - do_item_linktail_q
  - do_item_unlinktail_q
  - do_item_crawl_q
  source_file: /src/memcached/items.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LARGEST_ID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/memcached/items.c
      type_or_value: POWER_LARGEST
    - item_type: preproc_def
      name: LRU_BUMP_BUF_SIZE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/memcached/items.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: MAX_MAINTCRAWL_WAIT
      pos:
        line_end: 1430
        line_start: 1429
        source_file: /src/memcached/items.c
      type_or_value: 60 * 60
    - item_type: preproc_def
      name: MAX_LRU_MAINTAINER_SLEEP
      pos:
        line_end: 1539
        line_start: 1538
        source_file: /src/memcached/items.c
      type_or_value: (1000000-1)
    - item_type: preproc_def
      name: MIN_LRU_MAINTAINER_SLEEP
      pos:
        line_end: 1540
        line_start: 1539
        source_file: /src/memcached/items.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: evicted
        type: uint64_t
      - name: evicted_nonzero
        type: uint64_t
      - name: reclaimed
        type: uint64_t
      - name: outofmemory
        type: uint64_t
      - name: tailrepairs
        type: uint64_t
      - name: expired_unfetched
        type: uint64_t
      - name: evicted_unfetched
        type: uint64_t
      - name: evicted_active
        type: uint64_t
      - name: crawler_reclaimed
        type: uint64_t
      - name: crawler_items_checked
        type: uint64_t
      - name: lrutail_reflocked
        type: uint64_t
      - name: moves_to_cold
        type: uint64_t
      - name: moves_to_warm
        type: uint64_t
      - name: moves_within_lru
        type: uint64_t
      - name: direct_reclaims
        type: uint64_t
      - name: hits_to_hot
        type: uint64_t
      - name: hits_to_warm
        type: uint64_t
      - name: hits_to_cold
        type: uint64_t
      - name: hits_to_temp
        type: uint64_t
      - name: mem_requested
        type: uint64_t
      - name: evicted_time
        type: rel_time_t
      item_type: struct
      name: itemstats_t
      pos:
        line_end: 47
        line_start: 25
        source_file: /src/memcached/items.c
    - fields:
      - name: '*prev'
        type: struct _lru_bump_buf
      - name: '*next'
        type: struct _lru_bump_buf
      - name: mutex
        type: pthread_mutex_t
      - name: '*buf'
        type: bipbuf_t
      - name: dropped
        type: uint64_t
      item_type: struct
      name: _lru_bump_buf
      pos:
        line_end: 85
        line_start: 79
        source_file: /src/memcached/items.c
    - fields:
      - name: '*it'
        type: item
      - name: hv
        type: uint32_t
      item_type: struct
      name: lru_bump_entry
      pos:
        line_end: 90
        line_start: 87
        source_file: /src/memcached/items.c
    typedefs: []
    union: []
- function_names:
  - SSL_LOCK
  - SSL_UNLOCK
  - ssl_accept
  - ssl_get_peer_cn
  - ssl_read
  - ssl_write
  - ssl_sendmsg
  - print_ssl_error
  - load_server_certificates
  - ssl_conn_close
  - ssl_pending
  - ssl_init_conn
  - ssl_init_settings
  - ssl_init
  - ssl_callback
  - ssl_new_session_callback
  - refresh_certs
  - ssl_help
  - ssl_proto_text
  - ssl_set_verify_mode
  - ssl_set_min_version
  source_file: /src/memcached/tls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SESSION_ID_CONTEXT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/memcached/tls.c
      type_or_value: '"memcached"'
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/memcached/tls.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - md5_process
  - ROTATE_LEFT
  - F
  - SET
  - G
  - SET
  - H
  - SET
  - I
  - SET
  - md5_init
  - md5_append
  - md5_finish
  source_file: /src/memcached/md5.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BYTE_ORDER
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/memcached/md5.c
      type_or_value: '(ARCH_IS_BIG_ENDIAN ? 1 : -1)'
    - item_type: preproc_def
      name: BYTE_ORDER
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/memcached/md5.c
      type_or_value: '0'
    - item_type: preproc_def
      name: T_MASK
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/memcached/md5.c
      type_or_value: ((md5_word_t)~0)
    - item_type: preproc_def
      name: T1
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x28955b87)
    - item_type: preproc_def
      name: T2
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x173848a9)
    - item_type: preproc_def
      name: T3
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/memcached/md5.c
      type_or_value: '0x242070db'
    - item_type: preproc_def
      name: T4
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x3e423111)
    - item_type: preproc_def
      name: T5
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x0a83f050)
    - item_type: preproc_def
      name: T6
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/memcached/md5.c
      type_or_value: '0x4787c62a'
    - item_type: preproc_def
      name: T7
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x57cfb9ec)
    - item_type: preproc_def
      name: T8
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x02b96afe)
    - item_type: preproc_def
      name: T9
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/memcached/md5.c
      type_or_value: '0x698098d8'
    - item_type: preproc_def
      name: T10
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x74bb0850)
    - item_type: preproc_def
      name: T11
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x0000a44e)
    - item_type: preproc_def
      name: T12
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x76a32841)
    - item_type: preproc_def
      name: T13
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/memcached/md5.c
      type_or_value: '0x6b901122'
    - item_type: preproc_def
      name: T14
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x02678e6c)
    - item_type: preproc_def
      name: T15
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x5986bc71)
    - item_type: preproc_def
      name: T16
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/memcached/md5.c
      type_or_value: '0x49b40821'
    - item_type: preproc_def
      name: T17
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x09e1da9d)
    - item_type: preproc_def
      name: T18
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x3fbf4cbf)
    - item_type: preproc_def
      name: T19
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/memcached/md5.c
      type_or_value: '0x265e5a51'
    - item_type: preproc_def
      name: T20
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x16493855)
    - item_type: preproc_def
      name: T21
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x29d0efa2)
    - item_type: preproc_def
      name: T22
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/memcached/md5.c
      type_or_value: '0x02441453'
    - item_type: preproc_def
      name: T23
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x275e197e)
    - item_type: preproc_def
      name: T24
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x182c0437)
    - item_type: preproc_def
      name: T25
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/memcached/md5.c
      type_or_value: '0x21e1cde6'
    - item_type: preproc_def
      name: T26
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x3cc8f829)
    - item_type: preproc_def
      name: T27
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x0b2af278)
    - item_type: preproc_def
      name: T28
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/memcached/md5.c
      type_or_value: '0x455a14ed'
    - item_type: preproc_def
      name: T29
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x561c16fa)
    - item_type: preproc_def
      name: T30
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x03105c07)
    - item_type: preproc_def
      name: T31
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/memcached/md5.c
      type_or_value: '0x676f02d9'
    - item_type: preproc_def
      name: T32
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x72d5b375)
    - item_type: preproc_def
      name: T33
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x0005c6bd)
    - item_type: preproc_def
      name: T34
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x788e097e)
    - item_type: preproc_def
      name: T35
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/memcached/md5.c
      type_or_value: '0x6d9d6122'
    - item_type: preproc_def
      name: T36
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x021ac7f3)
    - item_type: preproc_def
      name: T37
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x5b4115bb)
    - item_type: preproc_def
      name: T38
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/memcached/md5.c
      type_or_value: '0x4bdecfa9'
    - item_type: preproc_def
      name: T39
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x0944b49f)
    - item_type: preproc_def
      name: T40
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x4140438f)
    - item_type: preproc_def
      name: T41
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/memcached/md5.c
      type_or_value: '0x289b7ec6'
    - item_type: preproc_def
      name: T42
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x155ed805)
    - item_type: preproc_def
      name: T43
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x2b10cf7a)
    - item_type: preproc_def
      name: T44
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/memcached/md5.c
      type_or_value: '0x04881d05'
    - item_type: preproc_def
      name: T45
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x262b2fc6)
    - item_type: preproc_def
      name: T46
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x1924661a)
    - item_type: preproc_def
      name: T47
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/memcached/md5.c
      type_or_value: '0x1fa27cf8'
    - item_type: preproc_def
      name: T48
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x3b53a99a)
    - item_type: preproc_def
      name: T49
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x0bd6ddbb)
    - item_type: preproc_def
      name: T50
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/memcached/md5.c
      type_or_value: '0x432aff97'
    - item_type: preproc_def
      name: T51
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x546bdc58)
    - item_type: preproc_def
      name: T52
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x036c5fc6)
    - item_type: preproc_def
      name: T53
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/memcached/md5.c
      type_or_value: '0x655b59c3'
    - item_type: preproc_def
      name: T54
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x70f3336d)
    - item_type: preproc_def
      name: T55
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x00100b82)
    - item_type: preproc_def
      name: T56
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x7a7ba22e)
    - item_type: preproc_def
      name: T57
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/memcached/md5.c
      type_or_value: '0x6fa87e4f'
    - item_type: preproc_def
      name: T58
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x01d3191f)
    - item_type: preproc_def
      name: T59
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x5cfebceb)
    - item_type: preproc_def
      name: T60
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/memcached/md5.c
      type_or_value: '0x4e0811a1'
    - item_type: preproc_def
      name: T61
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x08ac817d)
    - item_type: preproc_def
      name: T62
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x42c50dca)
    - item_type: preproc_def
      name: T63
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/memcached/md5.c
      type_or_value: '0x2ad7d2bb'
    - item_type: preproc_def
      name: T64
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/memcached/md5.c
      type_or_value: (T_MASK ^ 0x14792c6e)
    - item_type: preproc_def
      name: xbuf
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/memcached/md5.c
      type_or_value: "X\t\t"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/base64.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_pending
  - ssl_accept
  source_file: /src/memcached/tls.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MC_SSL_DISABLED
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/memcached/tls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MC_SSL_ENABLED_DEFAULT
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/memcached/tls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MC_SSL_ENABLED_NOPEER
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/memcached/tls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MC_SSL_ENABLED_PEER
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/memcached/tls.h
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/crawler.h
  types:
    enum:
    - enumerators:
      - name: CRAWLER_OK
        value: '0'
      - name: CRAWLER_NOTSTARTED
      - name: CRAWLER_RUNNING
      - name: CRAWLER_BADCLASS
      - name: CRAWLER_ERROR
      item_type: enum
      name: crawler_result_type
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/memcached/crawler.h
    preproc_defs:
    - item_type: preproc_def
      name: LRU_CRAWLER_CAP_REMAINING
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/memcached/crawler.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: CRAWLER_WAIT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/memcached/crawler.h
      type_or_value: 'true'
    - item_type: preproc_def
      name: CRAWLER_NOWAIT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/memcached/crawler.h
      type_or_value: 'false'
    structs:
    - fields:
      - name: histo[61]
        type: uint64_t
      - name: ttl_hourplus
        type: uint64_t
      - name: noexp
        type: uint64_t
      - name: reclaimed
        type: uint64_t
      - name: seen
        type: uint64_t
      - name: start_time
        type: rel_time_t
      - name: end_time
        type: rel_time_t
      - name: run_complete
        type: bool
      item_type: struct
      name: crawlerstats_t
      pos:
        line_end: 14
        line_start: 5
        source_file: /src/memcached/crawler.h
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: crawlerstats[POWER_LARGEST]
        type: crawlerstats_t
      - name: start_time
        type: rel_time_t
      - name: end_time
        type: rel_time_t
      - name: crawl_complete
        type: bool
      - name: is_external
        type: bool
      item_type: struct
      name: crawler_expired_data
      pos:
        line_end: 24
        line_start: 16
        source_file: /src/memcached/crawler.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/proto_bin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/assoc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MEMCACHED_ASSOC_DELETE_ENABLED
  - MEMCACHED_ASSOC_FIND_ENABLED
  - MEMCACHED_ASSOC_INSERT_ENABLED
  - MEMCACHED_COMMAND_ADD_ENABLED
  - MEMCACHED_COMMAND_APPEND_ENABLED
  - MEMCACHED_COMMAND_CAS_ENABLED
  - MEMCACHED_COMMAND_DECR_ENABLED
  - MEMCACHED_COMMAND_DELETE_ENABLED
  - MEMCACHED_COMMAND_GET_ENABLED
  - MEMCACHED_COMMAND_TOUCH_ENABLED
  - MEMCACHED_COMMAND_INCR_ENABLED
  - MEMCACHED_COMMAND_PREPEND_ENABLED
  - MEMCACHED_COMMAND_REPLACE_ENABLED
  - MEMCACHED_COMMAND_SET_ENABLED
  - MEMCACHED_CONN_ALLOCATE_ENABLED
  - MEMCACHED_CONN_CREATE_ENABLED
  - MEMCACHED_CONN_DESTROY_ENABLED
  - MEMCACHED_CONN_DISPATCH_ENABLED
  - MEMCACHED_CONN_RELEASE_ENABLED
  - MEMCACHED_ITEM_LINK_ENABLED
  - MEMCACHED_ITEM_REMOVE_ENABLED
  - MEMCACHED_ITEM_REPLACE_ENABLED
  - MEMCACHED_ITEM_UNLINK_ENABLED
  - MEMCACHED_ITEM_UPDATE_ENABLED
  - MEMCACHED_PROCESS_COMMAND_END_ENABLED
  - MEMCACHED_PROCESS_COMMAND_START_ENABLED
  - MEMCACHED_SLABS_ALLOCATE_ENABLED
  - MEMCACHED_SLABS_ALLOCATE_FAILED_ENABLED
  - MEMCACHED_SLABS_FREE_ENABLED
  - MEMCACHED_SLABS_SLABCLASS_ALLOCATE_ENABLED
  - MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED_ENABLED
  source_file: /src/memcached/trace.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/globals.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/extstore.h
  types:
    enum:
    - enumerators:
      - name: OBJ_IO_READ
        value: '0'
      - name: OBJ_IO_WRITE
      item_type: enum
      name: obj_io_mode
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/memcached/extstore.h
    - enumerators:
      - name: EXTSTORE_INIT_BAD_WBUF_SIZE
        value: '1'
      - name: EXTSTORE_INIT_NEED_MORE_WBUF
      - name: EXTSTORE_INIT_PAGE_WBUF_ALIGNMENT
      - name: EXTSTORE_INIT_TOO_MANY_PAGES
      - name: EXTSTORE_INIT_NEED_MORE_BUCKETS
      - name: EXTSTORE_INIT_OOM
      - name: EXTSTORE_INIT_OPEN_FAIL
      - name: EXTSTORE_INIT_THREAD_FAIL
      item_type: enum
      name: extstore_res
      pos:
        line_end: 102
        line_start: 93
        source_file: /src/memcached/extstore.h
    preproc_defs: []
    structs:
    - fields:
      - name: version
        type: uint64_t
      - name: bytes_used
        type: uint64_t
      - name: bucket
        type: unsigned int
      - name: free_bucket
        type: unsigned int
      - name: active
        type: bool
      item_type: struct
      name: extstore_page_data
      pos:
        line_end: 12
        line_start: 6
        source_file: /src/memcached/extstore.h
    - fields:
      - name: page_allocs
        type: uint64_t
      - name: page_count
        type: uint64_t
      - name: page_evictions
        type: uint64_t
      - name: page_reclaims
        type: uint64_t
      - name: page_size
        type: uint64_t
      - name: pages_free
        type: uint64_t
      - name: pages_used
        type: uint64_t
      - name: objects_evicted
        type: uint64_t
      - name: objects_read
        type: uint64_t
      - name: objects_written
        type: uint64_t
      - name: objects_used
        type: uint64_t
      - name: bytes_evicted
        type: uint64_t
      - name: bytes_written
        type: uint64_t
      - name: bytes_read
        type: uint64_t
      - name: bytes_used
        type: uint64_t
      - name: bytes_fragmented
        type: uint64_t
      - name: io_queue
        type: uint64_t
      - name: '*page_data'
        type: struct extstore_page_data
      item_type: struct
      name: extstore_stats
      pos:
        line_end: 39
        line_start: 20
        source_file: /src/memcached/extstore.h
    - fields:
      - name: page_size
        type: unsigned int
      - name: page_count
        type: unsigned int
      - name: page_buckets
        type: unsigned int
      - name: free_page_buckets
        type: unsigned int
      - name: wbuf_size
        type: unsigned int
      - name: wbuf_count
        type: unsigned int
      - name: io_threadcount
        type: unsigned int
      - name: io_depth
        type: unsigned int
      item_type: struct
      name: extstore_conf
      pos:
        line_end: 53
        line_start: 44
        source_file: /src/memcached/extstore.h
    - fields:
      - name: page_count
        type: unsigned int
      - name: '*file'
        type: char
      - name: fd
        type: int
      - name: offset
        type: uint64_t
      - name: total_size
        type: uint64_t
      - name: bucket
        type: unsigned int
      - name: free_bucket
        type: unsigned int
      - name: '*next'
        type: struct extstore_conf_file
      item_type: struct
      name: extstore_conf_file
      pos:
        line_end: 64
        line_start: 55
        source_file: /src/memcached/extstore.h
    - fields:
      - name: '*data'
        type: void
      - name: '*next'
        type: struct _obj_io
      - name: '*buf'
        type: char
      - name: '*iov'
        type: struct iovec
      - name: iovcnt
        type: unsigned int
      - name: page_version
        type: unsigned int
      - name: len
        type: unsigned int
      - name: offset
        type: unsigned int
      - name: page_id
        type: unsigned short
      - name: mode
        type: enum obj_io_mode
      - name: cb
        type: obj_io_cb
      item_type: struct
      name: _obj_io
      pos:
        line_end: 91
        line_start: 78
        source_file: /src/memcached/extstore.h
    typedefs:
    - item_type: typedef
      name: obj_io
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/memcached/extstore.h
      type: _obj_io
    - item_type: typedef
      name: (*obj_io_cb)(void *e, obj_io *io, int ret)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/memcached/extstore.h
      type: void
    union: []
- function_names: []
  source_file: /src/memcached/proto_proxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/itoa_ljust.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/slabs_mover.h
  types:
    enum:
    - enumerators:
      - name: REASSIGN_OK
        value: '0'
      - name: REASSIGN_BADCLASS
      - name: REASSIGN_NOSPARE
      - name: REASSIGN_RUNNING
      - name: REASSIGN_SRC_DST_SAME
      item_type: enum
      name: reassign_result_type
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/memcached/slabs_mover.h
    preproc_defs:
    - item_type: preproc_def
      name: SLABS_REASSIGN_ALLOW_EVICTIONS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/memcached/slabs_mover.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - daemonize
  source_file: /src/memcached/daemon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lru_crawler_close_client
  - lru_crawler_release_client
  - lru_crawler_expand_buf
  - crawler_expired_init
  - crawler_expired_doneclass
  - crawler_expired_finalize
  - crawler_expired_eval
  - crawler_metadump_init
  - KADD
  - KSP
  - crawler_metadump_eval
  - crawler_metadump_finalize
  - crawler_mgdump_init
  - crawler_mgdump_eval
  - crawler_mgdump_finalize
  - lru_crawler_write
  - lru_crawler_class_done
  - item_crawl_hash
  - item_crawler_thread
  - stop_item_crawler_thread
  - start_item_crawler_thread
  - do_lru_crawler_start
  - lru_crawler_set_client
  - lru_crawler_start
  - lru_crawler_crawl
  - lru_crawler_pause
  - lru_crawler_resume
  - init_lru_crawler
  source_file: /src/memcached/crawler.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LARGEST_ID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/memcached/crawler.c
      type_or_value: POWER_LARGEST
    - item_type: preproc_def
      name: MAX_MAINTCRAWL_WAIT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/memcached/crawler.c
      type_or_value: 60 * 60
    - item_type: preproc_def
      name: LRU_CRAWLER_MINBUFSPACE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/memcached/crawler.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: MIN_ITEMS_PER_WRITE
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/memcached/crawler.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*c'
        type: void
      - name: sfd
        type: int
      - name: buflen
        type: int
      - name: bufused
        type: int
      - name: '*buf'
        type: char
      item_type: struct
      name: crawler_client_t
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/memcached/crawler.c
    - fields:
      - name: init
        type: crawler_init_func
      - name: eval
        type: crawler_eval_func
      - name: doneclass
        type: crawler_doneclass_func
      - name: finalize
        type: crawler_finalize_func
      - name: needs_lock
        type: bool
      - name: needs_client
        type: bool
      item_type: struct
      name: crawler_module_reg_t
      pos:
        line_end: 50
        line_start: 43
        source_file: /src/memcached/crawler.c
    - fields:
      - name: '*data'
        type: void
      - name: c
        type: crawler_client_t
      - name: '*mod'
        type: crawler_module_reg_t
      - name: status
        type: int
      item_type: struct
      name: _crawler_module_t
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/memcached/crawler.c
    typedefs:
    - item_type: typedef
      name: crawler_module_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/memcached/crawler.c
      type: _crawler_module_t
    - item_type: typedef
      name: (*crawler_eval_func)(crawler_module_t *cm, item *it, uint32_t hv, int
        slab_cls)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/memcached/crawler.c
      type: void
    - item_type: typedef
      name: (*crawler_init_func)(crawler_module_t *cm, void *data)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/memcached/crawler.c
      type: int
    - item_type: typedef
      name: (*crawler_deinit_func)(crawler_module_t *cm)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/memcached/crawler.c
      type: void
    - item_type: typedef
      name: (*crawler_doneclass_func)(crawler_module_t *cm, int slab_cls)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/memcached/crawler.c
      type: void
    - item_type: typedef
      name: (*crawler_finalize_func)(crawler_module_t *cm)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/memcached/crawler.c
      type: void
    union: []
- function_names:
  - drop_privileges
  - setup_privilege_violations_handler
  source_file: /src/memcached/openbsd_priv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cache_create
  - cache_set_limit
  - get_object
  - cache_destroy
  - cache_alloc
  - do_cache_alloc
  - cache_free
  - do_cache_free
  source_file: /src/memcached/cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STORAGE_delete
  source_file: /src/memcached/storage.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: storage_get_item
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/memcached/storage.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: STORE_OFFSET
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/memcached/storage.h
      type_or_value: offsetof(item, nbytes)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/memcached/slab_automove_extstore.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X
  - MCP_PARSER_KEY
  - META_SPACE
  - META_CHAR
  - META_KEY
  source_file: /src/memcached/proto_parser.h
  types:
    enum:
    - enumerators:
      - name: CMD_TYPE_GENERIC
        value: '0'
      - name: CMD_TYPE_GET
      - name: CMD_TYPE_META
      item_type: enum
      name: proxy_cmd_types
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/memcached/proto_parser.h
    - enumerators:
      - name: CMD_BASE
        value: '0'
      - name: CMD_FINAL
      - name: CMD_ANY
      - name: CMD_ANY_STORAGE
      - name: CMD_FIELDS
      item_type: enum
      name: proxy_defines
      pos:
        line_end: 60
        line_start: 53
        source_file: /src/memcached/proto_parser.h
    preproc_defs:
    - item_type: preproc_def
      name: CMD_FIELDS
      pos:
        line_end: 51
        line_start: 16
        source_file: /src/memcached/proto_parser.h
      type_or_value: "X(CMD_MG) \\\n    X(CMD_MS) \\\n    X(CMD_MD) \\\n    X(CMD_MN)
        \\\n    X(CMD_MA) \\\n    X(CMD_ME) \\\n    X(CMD_GET) \\\n    X(CMD_GAT)
        \\\n    X(CMD_SET) \\\n    X(CMD_ADD) \\\n    X(CMD_CAS) \\\n    X(CMD_GETS)
        \\\n    X(CMD_GATS) \\\n    X(CMD_INCR) \\\n    X(CMD_DECR) \\\n    X(CMD_TOUCH)
        \\\n    X(CMD_APPEND) \\\n    X(CMD_DELETE) \\\n    X(CMD_REPLACE) \\\n    X(CMD_PREPEND)
        \\\n    X(CMD_END_STORAGE) \\\n    X(CMD_QUIT) \\\n    X(CMD_STATS) \\\n    X(CMD_SLABS)
        \\\n    X(CMD_WATCH) \\\n    X(CMD_LRU) \\\n    X(CMD_VERSION) \\\n    X(CMD_SHUTDOWN)
        \\\n    X(CMD_EXTSTORE) \\\n    X(CMD_FLUSH_ALL) \\\n    X(CMD_VERBOSITY)
        \\\n    X(CMD_LRU_CRAWLER) \\\n    X(CMD_REFRESH_CERTS) \\\n    X(CMD_CACHE_MEMLIMIT)"
    - item_type: preproc_def
      name: MFLAG_MAX_OPT_LENGTH
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/memcached/proto_parser.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MFLAG_MAX_OPAQUE_LENGTH
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/memcached/proto_parser.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PROCESS_REQUEST_OK
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/memcached/proto_parser.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PROCESS_REQUEST_BAD_FORMAT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/memcached/proto_parser.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: PROCESS_REQUEST_CMD_NOT_FOUND
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/memcached/proto_parser.h
      type_or_value: '-2'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*parser_storage_get_cb)(LIBEVENT_THREAD *t, item *it, mc_resp *resp)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/memcached/proto_parser.h
      type: int
    union: []
- function_names:
  - E_DEBUG
  - STAT_L
  - STAT_UL
  - STAT_INCR
  - STAT_DECR
  - thread_setname
  - wbuf_new
  - _get_io_thread
  - _next_version
  - extstore_get_stats
  - extstore_get_page_data
  - extstore_err
  - extstore_init
  - _evict_page
  - _allocate_page
  - _allocate_wbuf
  - _wbuf_cb
  - _submit_wbuf
  - extstore_write_request
  - extstore_write
  - _extstore_submit
  - extstore_submit
  - extstore_submit_bg
  - extstore_delete
  - extstore_check
  - extstore_close_page
  - extstore_evict_page
  - _read_from_wbuf
  - extstore_io_thread
  - _free_page
  source_file: /src/memcached/extstore.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THR_NAME_MAXLEN
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/memcached/extstore.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*next'
        type: struct __store_wbuf
      - name: '*buf'
        type: char
      - name: '*buf_pos'
        type: char
      - name: free
        type: unsigned int
      - name: size
        type: unsigned int
      - name: offset
        type: unsigned int
      - name: full
        type: bool
      - name: flushed
        type: bool
      item_type: struct
      name: __store_wbuf
      pos:
        line_end: 53
        line_start: 44
        source_file: /src/memcached/extstore.c
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: obj_count
        type: uint64_t
      - name: bytes_used
        type: uint64_t
      - name: offset
        type: uint64_t
      - name: version
        type: unsigned int
      - name: refcount
        type: unsigned int
      - name: allocated
        type: unsigned int
      - name: written
        type: unsigned int
      - name: bucket
        type: unsigned int
      - name: free_bucket
        type: unsigned int
      - name: fd
        type: int
      - name: id
        type: unsigned short
      - name: active
        type: bool
      - name: closed
        type: bool
      - name: free
        type: bool
      - name: '*wbuf'
        type: _store_wbuf
      - name: '*next'
        type: struct _store_page
      item_type: struct
      name: _store_page
      pos:
        line_end: 73
        line_start: 55
        source_file: /src/memcached/extstore.c
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: '*queue'
        type: obj_io
      - name: '*queue_tail'
        type: obj_io
      - name: '*e'
        type: store_engine
      - name: depth
        type: unsigned int
      item_type: struct
      name: store_io_thread
      pos:
        line_end: 83
        line_start: 76
        source_file: /src/memcached/extstore.c
    - fields:
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: store_maint
      pos:
        line_end: 88
        line_start: 86
        source_file: /src/memcached/extstore.c
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: '*pages'
        type: store_page
      - name: '*wbuf_stack'
        type: _store_wbuf
      - name: '*io_stack'
        type: obj_io
      - name: '*io_threads'
        type: store_io_thread
      - name: '*bg_thread'
        type: store_io_thread
      - name: '**page_buckets'
        type: store_page
      - name: '**free_page_buckets'
        type: store_page
      - name: page_size
        type: size_t
      - name: version
        type: unsigned int
      - name: last_io_thread
        type: unsigned int
      - name: io_threadcount
        type: unsigned int
      - name: page_count
        type: unsigned int
      - name: page_free
        type: unsigned int
      - name: page_bucketcount
        type: unsigned int
      - name: free_page_bucketcount
        type: unsigned int
      - name: io_depth
        type: unsigned int
      - name: stats_mutex
        type: pthread_mutex_t
      - name: stats
        type: struct extstore_stats
      - name: maint
        type: struct store_maint
      item_type: struct
      name: store_engine
      pos:
        line_end: 111
        line_start: 90
        source_file: /src/memcached/extstore.c
    typedefs:
    - item_type: typedef
      name: store_engine
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/memcached/extstore.c
      type: store_engine
    union: []
- function_names:
  - complete_nread_binary
  - try_read_command_binary
  - binary_get_key
  - add_bin_header
  - write_bin_error
  - handle_binary_protocol_error
  - write_bin_response
  - complete_incr_bin
  - complete_update_bin
  - write_bin_miss_response
  - process_bin_get_or_touch
  - process_bin_stat
  - init_sasl_conn
  - bin_list_sasl_mechs
  - process_bin_sasl_auth
  - process_bin_complete_sasl_auth
  - authenticated
  - dispatch_bin_command
  - process_bin_update
  - process_bin_append_prepend
  - process_bin_flush
  - process_bin_delete
  source_file: /src/memcached/proto_bin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _mcmc_tokenize
  - _mcmc_tokenize_meta
  - _mcmc_token_len
  - _mcmc_token
  - _mcmc_parse_value_line
  - _mcmc_parse_stat_line
  - _mcmc_parse_response
  - mcmc_toktou32
  - mcmc_toktou64
  - mcmc_tokto32
  - mcmc_tokto64
  - mcmc_tokenize_res
  - mcmc_tokenize
  - mcmc_token_get
  - X
  - mcmc_token_has_flag
  - mcmc_token_get_flag
  - mcmc_token_get_flag_u32
  - mcmc_token_get_flag_u64
  - mcmc_token_get_flag_32
  - mcmc_token_get_flag_64
  - mcmc_token_get_flag_idx
  - mcmc_parse_buf
  - mcmc_fd
  - mcmc_size
  - mcmc_min_buffer_size
  - mcmc_check_nonblock_connect
  - mcmc_connect
  - mcmc_send_request
  - mcmc_request_writev
  - mcmc_get_error
  - mcmc_disconnect
  source_file: /src/memcached/vendor/mcmc/mcmc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_BUFFER_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: FLAG_BUF_WANTED_READ
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: STATE_DEFAULT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: 0 // looking for any kind of response
    - item_type: preproc_def
      name: STATE_GET_RESP
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: 1 // processing VALUE's until END
    - item_type: preproc_def
      name: STATE_STAT_RESP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: 2 // processing STAT's until END
    - item_type: preproc_def
      name: STATE_STAT_RESP_DONE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TOKENIZER_MAXLEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: USHRT_MAX-1
    - item_type: preproc_def
      name: MCMC_TOKTO32_MAX
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: '11'
    - item_type: preproc_def
      name: MCMC_TOKTO64_MAX
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/memcached/vendor/mcmc/mcmc.c
      type_or_value: '22'
    structs:
    - fields:
      - name: fd
        type: int
      - name: gai_status
        type: int
      - name: sent_bytes_partial
        type: int
      - name: error
        type: int
      - name: status_flags
        type: uint32_t
      - name: buffer_used
        type: size_t
      - name: '*buffer_head'
        type: char
      item_type: struct
      name: mcmc_ctx
      pos:
        line_end: 43
        line_start: 33
        source_file: /src/memcached/vendor/mcmc/mcmc.c
    typedefs: []
    union: []
- function_names:
  - show_response_buffer
  - buffer_mode
  - main
  source_file: /src/memcached/vendor/mcmc/example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcmc_token_count
  - mcmc_token_has_flag_bit
  source_file: /src/memcached/vendor/mcmc/mcmc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCMC_STATIC
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: static
    - item_type: preproc_def
      name: MCMC_OK
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MCMC_NOK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: MCMC_ERR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: MCMC_NOT_CONNECTED
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MCMC_CONNECTED
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MCMC_CONNECTING
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: 3 // nonblock mode.
    - item_type: preproc_def
      name: MCMC_WANT_WRITE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MCMC_WANT_READ
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MCMC_CODE_STORED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MCMC_CODE_EXISTS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '9'
    - item_type: preproc_def
      name: MCMC_CODE_DELETED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '10'
    - item_type: preproc_def
      name: MCMC_CODE_TOUCHED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '11'
    - item_type: preproc_def
      name: MCMC_CODE_VERSION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MCMC_CODE_NOT_FOUND
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '13'
    - item_type: preproc_def
      name: MCMC_CODE_NOT_STORED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '14'
    - item_type: preproc_def
      name: MCMC_CODE_OK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '15'
    - item_type: preproc_def
      name: MCMC_CODE_NOP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MCMC_CODE_END
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '17'
    - item_type: preproc_def
      name: MCMC_ERR_SHORT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '18'
    - item_type: preproc_def
      name: MCMC_ERR_PARSE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '19'
    - item_type: preproc_def
      name: MCMC_ERR_VALUE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MCMC_CODE_ERROR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '21'
    - item_type: preproc_def
      name: MCMC_CODE_CLIENT_ERROR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '22'
    - item_type: preproc_def
      name: MCMC_CODE_SERVER_ERROR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '23'
    - item_type: preproc_def
      name: MCMC_RESP_GET
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '100'
    - item_type: preproc_def
      name: MCMC_RESP_META
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '101'
    - item_type: preproc_def
      name: MCMC_RESP_STAT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '102'
    - item_type: preproc_def
      name: MCMC_RESP_GENERIC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '104'
    - item_type: preproc_def
      name: MCMC_RESP_END
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '105'
    - item_type: preproc_def
      name: MCMC_RESP_VERSION
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '106'
    - item_type: preproc_def
      name: MCMC_RESP_NUMERIC
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: 107 // for weird incr/decr syntax.
    - item_type: preproc_def
      name: MCMC_RESP_ERRMSG
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: 108 // ERROR, CLIENT_ERROR, SERVER_ERRROR
    - item_type: preproc_def
      name: MCMC_RESP_FAIL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: 109 // Complete failure to parse, garbage, etc
    - item_type: preproc_def
      name: MCMC_OPTION_BLANK
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MCMC_OPTION_NONBLOCK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MCMC_OPTION_TCP_KEEPALIVE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: MCMC_ERROR_CODE_MAX
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MCMC_ERROR_MSG_MAX
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MCMC_TOKTO_OK
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MCMC_TOKTO_ERANGE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: MCMC_TOKTO_ELONG
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: MCMC_TOKTO_EINVALID
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '-3'
    - item_type: preproc_def
      name: MCMC_PARSER_MAX_TOKENS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: '24'
    - item_type: preproc_def
      name: MCMC_PARSER_MFLAG_HAS_SPACE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: (1)
    - item_type: preproc_def
      name: MCMC_PARSER_MFLAG_NOREPLY
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/memcached/vendor/mcmc/mcmc.h
      type_or_value: (1<<1)
    structs:
    - fields:
      - name: type
        type: short
      - name: code
        type: short
      - name: '*value'
        type: char
      - name: reslen
        type: size_t
      - name: vlen_read
        type: size_t
      - name: vlen
        type: size_t
      item_type: struct
      name: mcmc_resp_s
      pos:
        line_end: 96
        line_start: 67
        source_file: /src/memcached/vendor/mcmc/mcmc.h
    - fields:
      - name: ntokens
        type: uint8_t
      - name: mstart
        type: uint8_t
      - name: tokens[MCMC_PARSER_MAX_TOKENS]
        type: uint16_t
      - name: metaflags
        type: uint64_t
      item_type: struct
      name: mcmc_tokenizer_s
      pos:
        line_end: 107
        line_start: 102
        source_file: /src/memcached/vendor/mcmc/mcmc.h
    - fields:
      - name: '*request'
        type: char
      - name: command
        type: uint8_t
      - name: cmd_type
        type: uint8_t
      - name: keytoken
        type: uint8_t
      - name: klen
        type: uint8_t
      - name: modeflags
        type: uint8_t
      - name: llen
        type: int16_t
      - name: vlen
        type: int32_t
      item_type: struct
      name: mcmc_req_s
      pos:
        line_end: 119
        line_start: 109
        source_file: /src/memcached/vendor/mcmc/mcmc.h
    typedefs: []
    union: []
- function_names:
  - EVENT_DEBUG_MODE_IS_ON
  - EVENT_DEBUG_MODE_IS_ON
  - LIST_END
  - TAILQ_FIRST
  - TAILQ_END
  - TAILQ_NEXT
  - TAILQ_FOREACH
  - TAILQ_INSERT_BEFORE
  - N_ACTIVE_CALLBACKS
  source_file: /src/libevent/event-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ev_signal_next
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_signal.ev_signal_next
    - item_type: preproc_def
      name: ev_io_next
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_io.ev_io_next
    - item_type: preproc_def
      name: ev_io_timeout
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_io.ev_timeout
    - item_type: preproc_def
      name: ev_ncalls
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_signal.ev_ncalls
    - item_type: preproc_def
      name: ev_pncalls
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_signal.ev_pncalls
    - item_type: preproc_def
      name: ev_pri
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_pri
    - item_type: preproc_def
      name: ev_flags
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_flags
    - item_type: preproc_def
      name: ev_closure
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_closure
    - item_type: preproc_def
      name: ev_callback
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_cb_union.evcb_callback
    - item_type: preproc_def
      name: ev_arg
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_arg
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/event-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_SIGNAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/event-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_PERSIST
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/event-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EV_CLOSURE_CB_SELF
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/event-internal.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EV_CLOSURE_CB_FINALIZE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/event-internal.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_FINALIZE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/event-internal.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_FINALIZE_FREE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libevent/event-internal.h
      type_or_value: '6'
    - item_type: preproc_def
      name: event_io_map
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libevent/event-internal.h
      type_or_value: event_signal_map
    - item_type: preproc_def
      name: COMMON_TIMEOUT_MICROSECONDS_MASK
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/libevent/event-internal.h
      type_or_value: '0x000fffff'
    - item_type: preproc_def
      name: EVWATCH_PREPARE
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libevent/event-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVWATCH_CHECK
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libevent/event-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVWATCH_MAX
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/libevent/event-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVENT_DEL_NOBLOCK
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/libevent/event-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVENT_DEL_BLOCK
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/libevent/event-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVENT_DEL_AUTOBLOCK
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/libevent/event-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVENT_DEL_EVEN_IF_FINALIZING
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/libevent/event-internal.h
      type_or_value: '3'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*(*init)(struct event_base *)'
        type: void
      - name: (*add)(struct event_base *, evutil_socket_t fd, short old, short events,
          void *fdinfo)
        type: int
      - name: (*del)(struct event_base *, evutil_socket_t fd, short old, short events,
          void *fdinfo)
        type: int
      - name: (*dispatch)(struct event_base *, struct timeval *)
        type: int
      - name: (*dealloc)(struct event_base *)
        type: void
      - name: need_reinit
        type: int
      - name: features
        type: enum event_method_feature
      - name: fdinfo_len
        type: size_t
      item_type: struct
      name: eventop
      pos:
        line_end: 126
        line_start: 86
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '**entries'
        type: void
      - name: nentries
        type: int
      item_type: struct
      name: event_signal_map
      pos:
        line_end: 157
        line_start: 151
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: events
        type: struct event_list
      - name: duration
        type: struct timeval
      - name: timeout_event
        type: struct event
      - name: '*base'
        type: struct event_base
      item_type: struct
      name: common_timeout_list
      pos:
        line_end: 174
        line_start: 163
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*changes'
        type: struct event_change
      - name: n_changes
        type: int
      - name: changes_size
        type: int
      item_type: struct
      name: event_changelist
      pos:
        line_end: 187
        line_start: 183
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: (event_once)
        type: LIST_ENTRY
      - name: ev
        type: struct event
      - name: (*cb)(evutil_socket_t, short, void *)
        type: void
      - name: '*arg'
        type: void
      item_type: struct
      name: event_once
      pos:
        line_end: 206
        line_start: 200
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*timeout'
        type: struct timeval
      item_type: struct
      name: evwatch_prepare_cb_info
      pos:
        line_end: 215
        line_start: 211
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*unused'
        type: void
      item_type: struct
      name: evwatch_check_cb_info
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: next
        type: TAILQ_ENTRY
      - name: '*base'
        type: struct event_base
      - name: type
        type: unsigned
      - name: callback
        type: union evwatch_cb
      - name: '*arg'
        type: void
      item_type: struct
      name: evwatch
      pos:
        line_end: 251
        line_start: 235
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*evsel'
        type: struct eventop
      - name: '*evbase'
        type: void
      - name: changelist
        type: struct event_changelist
      - name: '*evsigsel'
        type: struct eventop
      - name: sig
        type: struct evsig_info
      - name: virtual_event_count
        type: int
      - name: virtual_event_count_max
        type: int
      - name: event_count
        type: int
      - name: event_count_max
        type: int
      - name: event_count_active
        type: int
      - name: event_count_active_max
        type: int
      - name: event_gotterm
        type: int
      - name: event_break
        type: int
      - name: event_continue
        type: int
      - name: event_running_priority
        type: int
      - name: running_loop
        type: int
      - name: n_deferreds_queued
        type: int
      - name: '*activequeues'
        type: struct evcallback_list
      - name: nactivequeues
        type: int
      - name: active_later_queue
        type: struct evcallback_list
      - name: '**common_timeout_queues'
        type: struct common_timeout_list
      - name: n_common_timeouts
        type: int
      - name: n_common_timeouts_allocated
        type: int
      - name: io
        type: struct event_io_map
      - name: sigmap
        type: struct event_signal_map
      - name: timeheap
        type: struct min_heap
      - name: tv_cache
        type: struct timeval
      - name: monotonic_timer
        type: struct evutil_monotonic_timer
      - name: tv_clock_diff
        type: struct timeval
      - name: last_updated_clock_diff
        type: time_t
      - name: '*current_event'
        type: struct event_callback
      - name: flags
        type: enum event_base_config_flag
      - name: max_dispatch_time
        type: struct timeval
      - name: max_dispatch_callbacks
        type: int
      - name: limit_callbacks_after_prio
        type: int
      - name: is_notify_pending
        type: int
      - name: th_notify_fd[2]
        type: evutil_socket_t
      - name: th_notify
        type: struct event
      - name: (*th_notify_fn)(struct event_base *base)
        type: int
      - name: weakrand_seed
        type: struct evutil_weakrand_state
      - name: watchers[EVWATCH_MAX]
        type: struct evwatch_list
      item_type: struct
      name: event_base
      pos:
        line_end: 397
        line_start: 254
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: (event_config_entry)
        type: TAILQ_ENTRY
      - name: '*avoid_method'
        type: char
      item_type: struct
      name: event_config_entry
      pos:
        line_end: 403
        line_start: 399
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: n_cpus_hint
        type: int
      - name: max_dispatch_interval
        type: struct timeval
      - name: max_dispatch_callbacks
        type: int
      - name: limit_callbacks_after_prio
        type: int
      - name: require_features
        type: enum event_method_feature
      - name: flags
        type: enum event_base_config_flag
      item_type: struct
      name: event_config
      pos:
        line_end: 416
        line_start: 407
        source_file: /src/libevent/event-internal.h
    typedefs: []
    union:
    - fields:
      - name: prepare
        type: evwatch_prepare_cb
      - name: check
        type: evwatch_check_cb
      item_type: union
      name: evwatch_cb
      pos:
        line_end: 234
        line_start: 231
        source_file: /src/libevent/event-internal.h
- function_names:
  - evwatch_new
  - evwatch_prepare_new
  - evwatch_check_new
  - evwatch_base
  - evwatch_free
  - evwatch_prepare_get_timeout
  source_file: /src/libevent/watch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mm_malloc
  - mm_calloc
  - mm_strdup
  - mm_realloc
  - mm_free
  - mm_malloc
  - mm_calloc
  - mm_strdup
  - mm_realloc
  - mm_free
  source_file: /src/libevent/mm-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - member_size
  - fake_getnameinfo
  - REQ_VERSION_BEFORE
  - REQ_VERSION_ATLEAST
  - MIN
  - strsep
  - html_replace
  - evhttp_htmlescape
  - evhttp_method_
  - evhttp_response_needs_body
  - evhttp_write_buffer
  - evhttp_send_continue_done
  - evhttp_send_continue
  - evhttp_connected
  - evhttp_make_header_request
  - evhttp_is_connection_close
  - evhttp_is_request_connection_close
  - evhttp_is_connection_keepalive
  - evhttp_maybe_add_date_header
  - evhttp_maybe_add_content_length_header
  - evhttp_make_header_response
  - evhttp_have_expect
  - evhttp_make_header
  - evhttp_connection_set_max_headers_size
  - evhttp_connection_set_max_body_size
  - evhttp_connection_incoming_fail
  - evhttp_request_free_auto
  - evhttp_request_free_
  - evhttp_set_timeout_tv_
  - evhttp_set_timeout_
  - evhttp_connection_fail_
  - evhttp_write_cb
  - evhttp_connection_done
  - evhttp_handle_chunked_read
  - evhttp_read_trailer
  - evhttp_lingering_close
  - evhttp_lingering_fail
  - evhttp_read_body
  - get_deferred_queue
  - evhttp_read_cb
  - evhttp_deferred_read_cb
  - evhttp_write_connectioncb
  - evhttp_connection_free
  - evhttp_connection_free_on_completion
  - evhttp_connection_set_local_address
  - evhttp_connection_set_local_port
  - evhttp_request_dispatch
  - evhttp_connection_reset_hard_
  - evhttp_connection_reset_
  - evhttp_connection_start_detectclose
  - evhttp_connection_stop_detectclose
  - evhttp_connection_retry
  - evhttp_connection_cb_cleanup
  - evhttp_connection_read_on_write_error
  - evhttp_error_cb
  - evhttp_connection_cb
  - evhttp_valid_response_code
  - evhttp_parse_http_version
  - evhttp_parse_response_line
  - evhttp_parse_request_line
  - evhttp_find_header
  - TAILQ_FOREACH
  - evhttp_clear_headers
  - evhttp_remove_header
  - TAILQ_FOREACH
  - evhttp_header_is_valid_value
  - evhttp_add_header
  - evhttp_add_header_internal
  - evhttp_parse_firstline_
  - evhttp_append_to_last_header
  - evhttp_parse_headers_
  - evhttp_get_body_length
  - evhttp_method_may_have_body_
  - evhttp_get_body
  - evhttp_read_firstline
  - evhttp_read_header
  - evhttp_connection_new
  - evhttp_connection_set_existing_
  - evhttp_connection_new_
  - evhttp_connection_base_bufferevent_reuse_new
  - evhttp_connection_base_bufferevent_unix_new
  - evhttp_connection_base_bufferevent_new
  - evhttp_connection_get_bufferevent
  - evhttp_connection_get_server
  - evhttp_connection_base_new
  - evhttp_connection_set_family
  - evhttp_connection_set_flags
  - evhttp_connection_set_ext_method_cmp
  - evhttp_connection_set_base
  - evhttp_connection_set_timeout
  - evhttp_connection_set_timeout_tv
  - evhttp_connection_set_connect_timeout_tv
  - evhttp_connection_set_read_timeout_tv
  - evhttp_connection_set_write_timeout_tv
  - evhttp_connection_set_initial_retry_tv
  - evhttp_connection_set_retries
  - evhttp_connection_set_closecb
  - evhttp_connection_get_peer
  - evhttp_connection_get_addr
  - evhttp_connection_connect_
  - evhttp_make_request
  - evhttp_cancel_request
  - evhttp_start_read_
  - evhttp_start_write_
  - evhttp_send_done
  - evhttp_send_error
  - evhttp_send_notfound
  - evhttp_send
  - evhttp_send_reply
  - evhttp_send_reply_start
  - evhttp_send_reply_chunk_with_cb
  - evhttp_start_ws_
  - evhttp_send_reply_chunk
  - evhttp_send_reply_end
  - MEMBERSOF
  - evhttp_response_phrase_internal
  - evhttp_response_code_
  - evhttp_send_page_
  - CHAR_IS_UNRESERVED
  - evhttp_uriencode
  - evhttp_encode_uri
  - evhttp_decode_uri_internal
  - evhttp_decode_uri
  - evhttp_uridecode
  - evhttp_parse_query_impl
  - evhttp_parse_query
  - evhttp_parse_query_str
  - evhttp_parse_query_str_flags
  - evhttp_dispatch_callback
  - TAILQ_FOREACH
  - prefix_suffix_match
  - evhttp_find_alias
  - evhttp_find_vhost
  - evhttp_handle_request
  - accept_socket_cb
  - evhttp_bind_socket
  - evhttp_bind_socket_with_handle
  - evhttp_accept_socket
  - evhttp_foreach_bound_socket
  - evhttp_accept_socket_with_handle
  - evhttp_bind_listener
  - evhttp_bound_socket_get_fd
  - evhttp_bound_socket_get_listener
  - evhttp_bound_set_bevcb
  - evhttp_del_accept_socket
  - evhttp_new_object
  - evhttp_new
  - evhttp_start
  - evhttp_free
  - evhttp_add_virtual_host
  - evhttp_remove_virtual_host
  - evhttp_add_server_alias
  - evhttp_remove_server_alias
  - evhttp_set_timeout
  - evhttp_set_timeout_tv
  - evhttp_set_read_timeout_tv
  - evhttp_set_write_timeout_tv
  - evhttp_set_flags
  - evhttp_set_max_headers_size
  - evhttp_set_max_body_size
  - evhttp_set_max_connections
  - evhttp_get_connection_count
  - evhttp_set_default_content_type
  - evhttp_set_allowed_methods
  - evhttp_set_ext_method_cmp
  - evhttp_set_cb
  - evhttp_del_cb
  - evhttp_set_gencb
  - evhttp_set_bevcb
  - evhttp_set_newreqcb
  - evhttp_set_errorcb
  - evhttp_request_new
  - evhttp_request_free
  - evhttp_request_own
  - evhttp_request_is_owned
  - evhttp_request_get_connection
  - evhttp_connection_get_base
  - evhttp_request_set_chunked_cb
  - evhttp_request_set_header_cb
  - evhttp_request_set_error_cb
  - evhttp_request_set_on_complete_cb
  - evhttp_request_get_uri
  - evhttp_request_get_evhttp_uri
  - evhttp_request_get_host
  - evhttp_request_get_command
  - evhttp_request_get_response_code
  - evhttp_request_get_response_code_line
  - evhttp_request_get_input_headers
  - evhttp_request_get_output_headers
  - evhttp_request_get_input_buffer
  - evhttp_request_get_output_buffer
  - evhttp_get_request_connection
  - evhttp_associate_new_request_with_connection
  - evhttp_get_request
  - name_from_addr
  - create_bind_socket_nonblock
  - make_addrinfo
  - bind_socket
  - evhttp_uri_new
  - evhttp_uri_set_flags
  - scheme_ok
  - userinfo_ok
  - regname_ok
  - parse_port
  - bracket_addr_ok
  - parse_authority
  - end_of_authority
  - end_of_path
  - path_matches_noscheme
  - evhttp_uri_parse
  - evhttp_uri_parse_with_flags
  - evhttp_uri_parse_authority
  - evhttp_uri_free
  - URI_FREE_STR_
  - evhttp_uri_join
  - URI_ADD_
  - evhttp_uri_get_scheme
  - evhttp_uri_get_userinfo
  - evhttp_uri_get_host
  - evhttp_uri_get_unixsocket
  - evhttp_uri_get_port
  - evhttp_uri_get_path
  - evhttp_uri_get_query
  - evhttp_uri_get_fragment
  - URI_SET_STR_
  - evhttp_uri_set_scheme
  - evhttp_uri_set_userinfo
  - evhttp_uri_set_host
  - evhttp_uri_set_unixsocket
  - evhttp_uri_set_port
  - end_of_cpath
  - evhttp_uri_set_path
  - evhttp_uri_set_query
  - evhttp_uri_set_fragment
  source_file: /src/libevent/http.c
  types:
    enum:
    - enumerators:
      - name: 'NO'
      - name: CONTINUE
      - name: OTHER
      item_type: enum
      name: expect
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/libevent/http.c
    - enumerators:
      - name: PART_PATH
      - name: PART_QUERY
      - name: PART_FRAGMENT
      item_type: enum
      name: uri_part
      pos:
        line_end: 5173
        line_start: 5169
        source_file: /src/libevent/http.c
    preproc_defs:
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/http.c
      type_or_value: '32'
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libevent/http.c
      type_or_value: '1025'
    - item_type: preproc_def
      name: NI_NUMERICHOST
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libevent/http.c
      type_or_value: '1'
    - item_type: preproc_def
      name: NI_NUMERICSERV
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libevent/http.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EVHTTP_REQ_OWN_CONNECTION
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libevent/http.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EVHTTP_USER_OWNED
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libevent/http.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: EVHTTP_REQ_DEFER_FREE
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libevent/http.c
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: EVHTTP_REQ_NEEDS_FREE
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libevent/http.c
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: ERR_FORMAT
      pos:
        line_end: 3097
        line_start: 3092
        source_file: /src/libevent/http.c
      type_or_value: "\"<html><head>\" \\\n\t\"<title>%d %s</title>\" \\\n\t\"</head><body>\"
        \\\n\t\"<h1>%d %s</h1>%s\" \\\n\t\"</body></html>\""
    - item_type: preproc_def
      name: REASON_FORMAT
      pos:
        line_end: 3130
        line_start: 3129
        source_file: /src/libevent/http.c
      type_or_value: '"<p>The requested URL %s was not found on this server.</p>"'
    - item_type: preproc_def
      name: SUBDELIMS
      pos:
        line_end: 4971
        line_start: 4970
        source_file: /src/libevent/http.c
      type_or_value: '"!$&''()*+,;="'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: num_responses
        type: size_t
      - name: '**responses'
        type: char
      item_type: struct
      name: response_class
      pos:
        line_end: 3365
        line_start: 3361
        source_file: /src/libevent/http.c
    - fields:
      - name: flags
        type: unsigned
      - name: '*scheme'
        type: char
      - name: '*userinfo'
        type: char
      - name: '*host'
        type: char
      - name: port
        type: int
      - name: '*path'
        type: char
      - name: '*query'
        type: char
      - name: '*fragment'
        type: char
      item_type: struct
      name: evhttp_uri
      pos:
        line_end: 4933
        line_start: 4921
        source_file: /src/libevent/http.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/wepoll.h
  types:
    enum:
    - enumerators:
      - name: EPOLLIN
        value: (int) (1U <<  0)
      - name: EPOLLOUT
        value: (int) (1U <<  2)
      - name: EPOLLHUP
        value: (int) (1U <<  4)
      - name: EPOLLPRI
        value: (int) (1U <<  1)
      - name: EPOLLERR
        value: (int) (1U <<  3)
      - name: EPOLLRDNORM
        value: (int) (1U <<  6)
      - name: EPOLLRDBAND
        value: (int) (1U <<  7)
      - name: EPOLLWRNORM
        value: (int) (1U <<  8)
      - name: EPOLLWRBAND
        value: (int) (1U <<  9)
      - name: EPOLLMSG
        value: (int) (1U << 10)
      - name: EPOLLONESHOT
        value: (int) (1U << 30)
      - name: EPOLLRDHUP
        value: (int) (1U << 13)
      item_type: enum
      name: EPOLL_EVENTS
      pos:
        line_end: 51
        line_start: 38
        source_file: /src/libevent/wepoll.h
    preproc_defs:
    - item_type: preproc_def
      name: EPOLLIN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  0)
    - item_type: preproc_def
      name: EPOLLPRI
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  1)
    - item_type: preproc_def
      name: EPOLLOUT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  2)
    - item_type: preproc_def
      name: EPOLLERR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  3)
    - item_type: preproc_def
      name: EPOLLHUP
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  4)
    - item_type: preproc_def
      name: EPOLLRDNORM
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  6)
    - item_type: preproc_def
      name: EPOLLRDBAND
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  7)
    - item_type: preproc_def
      name: EPOLLWRNORM
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  8)
    - item_type: preproc_def
      name: EPOLLWRBAND
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  9)
    - item_type: preproc_def
      name: EPOLLMSG
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U << 10)
    - item_type: preproc_def
      name: EPOLLRDHUP
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U << 13)
    - item_type: preproc_def
      name: EPOLLONESHOT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U << 30)
    - item_type: preproc_def
      name: EPOLL_CTL_ADD
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/wepoll.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EPOLL_CTL_MOD
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/wepoll.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EPOLL_CTL_DEL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/wepoll.h
      type_or_value: '3'
    structs:
    - fields:
      - name: events
        type: uint32_t
      - name: data
        type: epoll_data_t
      item_type: struct
      name: epoll_event
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/libevent/wepoll.h
    typedefs:
    - item_type: typedef
      name: '* HANDLE'
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/libevent/wepoll.h
      type: void
    - item_type: typedef
      name: SOCKET
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/libevent/wepoll.h
      type: uintptr_t
    union:
    - fields:
      - name: '* ptr'
        type: void
      - name: fd
        type: int
      - name: u32
        type: uint32_t
      - name: u64
        type: uint64_t
      - name: sock
        type: SOCKET
      - name: hnd
        type: HANDLE
      item_type: union
      name: epoll_data
      pos:
        line_end: 80
        line_start: 73
        source_file: /src/libevent/wepoll.h
- function_names:
  - evutil_open_closeonexec_
  - evutil_fd_filesize
  - evutil_read_file_
  - N_TO_READ
  - N_TO_READ
  - create_tmpfile
  - evutil_check_working_afunix_
  - evutil_win_socketpair_afunix
  - ERR
  - evutil_win_socketpair
  - evutil_make_socket_nonblocking
  - evutil_fast_socket_nonblocking
  - evutil_make_listen_socket_reuseable
  - evutil_make_listen_socket_reuseable_port
  - evutil_make_listen_socket_ipv6only
  - evutil_make_listen_socket_not_ipv6only
  - evutil_make_tcp_listen_socket_deferred
  - evutil_make_socket_closeonexec
  - evutil_fast_socket_closeonexec
  - evutil_closesocket
  - evutil_strtoll
  - evutil_socket_geterror
  - evutil_socket_connect_
  - evutil_socket_finished_connecting_
  - evutil_v4addr_is_localhost
  - evutil_v4addr_is_linklocal
  - evutil_v4addr_is_classd
  - evutil_v4addr_is_local_
  - evutil_v6addr_is_local_
  - evutil_found_ifaddr
  - evutil_check_ifaddrs
  - evutil_check_interfaces
  - evutil_new_addrinfo_
  - evutil_addrinfo_append_
  - parse_numeric_servname
  - evutil_parse_servname
  - evutil_unparse_protoname
  - evutil_getaddrinfo_infer_protocols
  - evutil_getaddrinfo_common_
  - addrinfo_from_hostent
  - evutil_adjust_hints_for_addrconfig_
  - ai_find_protocol
  - need_numeric_port_hack
  - need_socktype_protocol_hack
  - apply_numeric_port_hack
  - apply_socktype_protocol_hack
  - evutil_getaddrinfo
  - evutil_freeaddrinfo
  - evutil_dup_addrinfo_
  - evutil_set_evdns_getaddrinfo_fn_
  - evutil_set_evdns_getaddrinfo_cancel_fn_
  - evutil_set_resolvconf_filename_
  - evutil_resolvconf_filename_
  - evutil_getaddrinfo_async_
  - evutil_getaddrinfo_cancel_async_
  - evutil_gai_strerror
  - chomp
  - hash_cached_sock_errs
  - eq_cached_sock_errs
  - evutil_socket_error_to_string
  - evutil_global_setup_locks_
  - evutil_free_sock_err_globals
  - evutil_global_setup_locks_
  - evutil_free_sock_err_globals
  - evutil_snprintf
  - evutil_vsnprintf
  - evutil_inet_ntop
  - evutil_inet_pton_scope
  - evutil_inet_pton
  - evutil_parse_sockaddr_port
  - evutil_format_sockaddr_port_
  - evutil_sockaddr_cmp
  - IMPL_CTYPE_FN
  - EVUTIL_TOLOWER_
  - EVUTIL_TOUPPER_
  - evutil_ascii_strcasecmp
  - evutil_ascii_strncasecmp
  - evutil_ascii_strcasestr
  - evutil_rtrim_lws_
  - evutil_issetugid
  - evutil_getenv_
  - evutil_weakrand_seed_
  - evutil_weakrand_
  - evutil_weakrand_range_
  - evutil_memclear_
  - evutil_sockaddr_is_loopback_
  - evutil_hex_char_to_int_
  - evutil_load_windows_system_library_
  - evutil_socket_
  - evutil_socketpair
  - evutil_ersatz_socketpair_
  - ERR
  - ERR
  - evutil_accept4_
  - evutil_make_internal_pipe_
  - evutil_eventfd_
  - evutil_free_globals_
  - EVENT_KEEPALIVE_FACTOR
  - evutil_strsignal
  source_file: /src/libevent/evutil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/evutil.c
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: open
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libevent/evutil.c
      type_or_value: _open
    - item_type: preproc_def
      name: read
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libevent/evutil.c
      type_or_value: _read
    - item_type: preproc_def
      name: close
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libevent/evutil.c
      type_or_value: _close
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libevent/evutil.c
      type_or_value: _fstati64
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/evutil.c
      type_or_value: _stati64
    - item_type: preproc_def
      name: mode_t
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libevent/evutil.c
      type_or_value: int
    - item_type: preproc_def
      name: SIO_KEEPALIVE_VALS
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libevent/evutil.c
      type_or_value: _WSAIOW(IOC_VENDOR,4)
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libevent/evutil.c
      type_or_value: _O_RDONLY
    - item_type: preproc_def
      name: FLAGS
      pos:
        line_end: 869
        line_start: 866
        source_file: /src/libevent/evutil.c
      type_or_value: "(GAA_FLAG_SKIP_ANYCAST | \\\n               GAA_FLAG_SKIP_MULTICAST
        | \\\n               GAA_FLAG_SKIP_DNS_SERVER)"
    - item_type: preproc_def
      name: EVUTIL_AI_LIBEVENT_ALLOCATED
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/libevent/evutil.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: SOCKET_TYPE_MASK
      pos:
        line_end: 2863
        line_start: 2862
        source_file: /src/libevent/evutil.c
      type_or_value: (~(EVUTIL_SOCK_NONBLOCK|EVUTIL_SOCK_CLOEXEC))
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 3133
        line_start: 3132
        source_file: /src/libevent/evutil.c
      type_or_value: AF_INET
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 3135
        line_start: 3134
        source_file: /src/libevent/evutil.c
      type_or_value: AF_UNIX
    structs:
    - fields:
      - name: onoff
        type: u_long
      - name: keepalivetime
        type: u_long
      - name: keepaliveinterval
        type: u_long
      item_type: struct
      name: tcp_keepalive
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/libevent/evutil.c
    - fields:
      - name: (cached_sock_errs_entry)
        type: HT_ENTRY
      - name: code
        type: DWORD
      - name: '*msg'
        type: char
      item_type: struct
      name: cached_sock_errs_entry
      pos:
        line_end: 1940
        line_start: 1936
        source_file: /src/libevent/evutil.c
    typedefs:
    - item_type: typedef
      name: "(WINAPI *GetAdaptersAddresses_fn_t)(\n              ULONG, ULONG, PVOID,
        PIP_ADAPTER_ADDRESSES, PULONG)"
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/libevent/evutil.c
      type: ULONG
    union: []
- function_names:
  - event_strlcpy_
  source_file: /src/libevent/strlcpy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hashsocket
  - eqsocket
  - GET_IO_SLOT
  - GET_IO_SLOT_AND_CTOR
  - evmap_io_initmap_
  - evmap_io_clear_
  - GET_SIGNAL_SLOT
  - GET_SIGNAL_SLOT_AND_CTOR
  - GET_IO_SLOT
  - GET_IO_SLOT_AND_CTOR
  - evmap_io_initmap_
  - evmap_io_clear_
  - evmap_make_space
  - evmap_signal_initmap_
  - evmap_signal_clear_
  - evmap_io_init
  - evmap_io_add_
  - evmap_io_del_
  - evmap_io_active_
  - evmap_signal_init
  - evmap_signal_add_
  - evmap_signal_del_
  - evmap_signal_active_
  - evmap_io_get_fdinfo_
  - HT_FOREACH
  - evmap_signal_foreach_signal
  - evmap_io_reinit_iter_fn
  - evmap_signal_reinit_iter_fn
  - evmap_reinit_
  - delete_all_in_dlist
  - evmap_io_delete_all_iter_fn
  - evmap_signal_delete_all_iter_fn
  - evmap_delete_all_
  - event_changelist_init_
  - event_change_get_fdinfo
  - event_changelist_assert_ok_foreach_iter_fn
  - event_changelist_assert_ok
  - event_changelist_check
  - event_changelist_check
  - event_changelist_remove_all_
  - event_changelist_freemem_
  - event_changelist_grow
  - event_changelist_get_or_construct
  - event_changelist_add_
  - event_changelist_del_
  - evmap_io_check_integrity_fn
  - evmap_signal_check_integrity_fn
  - evmap_check_integrity_
  - evmap_io_foreach_event_fn
  - evmap_signal_foreach_event_fn
  - evmap_foreach_event_
  source_file: /src/libevent/evmap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FDINFO_OFFSET
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libevent/evmap.c
      type_or_value: sizeof(struct evmap_io)
    structs:
    - fields:
      - name: events
        type: struct event_dlist
      - name: nread
        type: ev_uint16_t
      - name: nwrite
        type: ev_uint16_t
      - name: nclose
        type: ev_uint16_t
      item_type: struct
      name: evmap_io
      pos:
        line_end: 63
        line_start: 58
        source_file: /src/libevent/evmap.c
    - fields:
      - name: events
        type: struct event_dlist
      item_type: struct
      name: evmap_signal
      pos:
        line_end: 69
        line_start: 67
        source_file: /src/libevent/evmap.c
    - fields:
      - name: (event_map_entry)
        type: HT_ENTRY
      - name: fd
        type: evutil_socket_t
      - name: ent
        type: "union { /* This is a union in case we need to make more things that
          can\n\t\t\t   be in the hashtable. */\n\t\tstruct evmap_io evmap_io;\n\t}"
      item_type: struct
      name: event_map_entry
      pos:
        line_end: 86
        line_start: 79
        source_file: /src/libevent/evmap.c
    - fields:
      - name: idxplus1
        type: int
      item_type: struct
      name: event_changelist_fdinfo
      pos:
        line_end: 705
        line_start: 702
        source_file: /src/libevent/evmap.c
    - fields:
      - name: fn
        type: event_base_foreach_event_cb
      - name: '*arg'
        type: void
      item_type: struct
      name: evmap_foreach_event_helper
      pos:
        line_end: 1016
        line_start: 1013
        source_file: /src/libevent/evmap.c
    typedefs:
    - item_type: typedef
      name: "(*evmap_io_foreach_fd_cb)(\n\tstruct event_base *, evutil_socket_t, struct
        evmap_io *, void *)"
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/libevent/evmap.c
      type: int
    - item_type: typedef
      name: "(*evmap_signal_foreach_signal_cb)(\n\tstruct event_base *, int, struct
        evmap_signal *, void *)"
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/libevent/evmap.c
      type: int
    union: []
- function_names:
  - sigfd_init_
  source_file: /src/libevent/evsignal-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ev_signal
        type: struct event
      - name: ev_signal_pair[2]
        type: evutil_socket_t
      - name: ev_signal_added
        type: int
      - name: ev_n_signals_added
        type: int
      - name: sh_old_max
        type: int
      item_type: struct
      name: evsig_info
      pos:
        line_end: 61
        line_start: 38
        source_file: /src/libevent/evsignal-internal.h
    typedefs:
    - item_type: typedef
      name: (*ev_sighandler_t)(int)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/libevent/evsignal-internal.h
      type: void
    union: []
- function_names:
  - EV_CHECK_FMT
  - event_debug_get_logging_mask_
  - event_debug_get_logging_mask_
  - event_debug
  - event_debug
  source_file: /src/libevent/log-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EV_NORETURN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libevent/log-internal.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: EVENT_ERR_ABORT_
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/log-internal.h
      type_or_value: ((int)0xdeaddead)
    structs: []
    typedefs: []
    union: []
- function_names:
  - evws_connection_free
  - Base64encode
  - ws_gen_accept_key
  - close_after_write_cb
  - close_event_cb
  - evws_close
  - evws_force_disconnect_
  - get_ws_frame
  - ws_evhttp_read_cb
  - ws_evhttp_error_cb
  - evws_new_session
  - make_ws_frame
  - evws_send
  - evws_send_text
  - evws_send_binary
  - evws_connection_set_closecb
  - evws_connection_get_bufferevent
  source_file: /src/libevent/ws.c
  types:
    enum:
    - enumerators:
      - name: ERROR_FRAME
        value: '0xFF'
      - name: INCOMPLETE_FRAME
        value: '0x81'
      - name: TEXT_FRAME
        value: '0x1'
      - name: CLOSING_FRAME
        value: '0x8'
      - name: INCOMPLETE_DATA
        value: '0xFE'
      - name: BINARY_FRAME
        value: '0x2'
      - name: PING_FRAME
        value: '0x9'
      - name: PONG_FRAME
        value: '0xA'
      item_type: enum
      name: WebSocketFrameType
      pos:
        line_end: 77
        line_start: 64
        source_file: /src/libevent/ws.c
    preproc_defs:
    - item_type: preproc_def
      name: WS_UUID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/ws.c
      type_or_value: '"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"'
    structs:
    - fields:
      - name: (evws_connection)
        type: TAILQ_ENTRY
      - name: '*bufev'
        type: struct bufferevent
      - name: cb
        type: ws_on_msg_cb
      - name: '*cb_arg'
        type: void
      - name: cbclose
        type: ws_on_close_cb
      - name: '*cbclose_arg'
        type: void
      - name: '*http_server'
        type: struct evhttp
      - name: '*incomplete_frames'
        type: struct evbuffer
      - name: closed
        type: bool
      item_type: struct
      name: evws_connection
      pos:
        line_end: 62
        line_start: 46
        source_file: /src/libevent/ws.c
    typedefs: []
    union: []
- function_names:
  - LOCK
  - UNLOCK
  - listener_incref_and_lock
  - listener_decref_and_unlock
  - evconnlistener_new
  - evconnlistener_new_bind
  - evconnlistener_free
  - event_listener_destroy
  - evconnlistener_enable
  - evconnlistener_disable
  - event_listener_enable
  - event_listener_disable
  - evconnlistener_get_fd
  - event_listener_getfd
  - evconnlistener_get_base
  - event_listener_getbase
  - evconnlistener_set_cb
  - evconnlistener_set_error_cb
  - listener_read_cb
  - iocp_listener_event_add
  - iocp_listener_event_del
  - new_accepting_socket
  - free_and_unlock_accepting_socket
  - start_accepting
  - stop_accepting
  - accepted_socket_invoke_user_cb
  - accepted_socket_cb
  - iocp_listener_enable
  - iocp_listener_disable_impl
  - iocp_listener_disable
  - iocp_listener_destroy
  - iocp_listener_getfd
  - iocp_listener_getbase
  - evconnlistener_new_async
  source_file: /src/libevent/listener.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/listener.c
      type_or_value: '0x0403'
    - item_type: preproc_def
      name: N_SOCKETS_PER_LISTENER
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/libevent/listener.c
      type_or_value: '4'
    structs:
    - fields:
      - name: (*enable)(struct evconnlistener *)
        type: int
      - name: (*disable)(struct evconnlistener *)
        type: int
      - name: (*destroy)(struct evconnlistener *)
        type: void
      - name: (*shutdown)(struct evconnlistener *)
        type: void
      - name: (*getfd)(struct evconnlistener *)
        type: evutil_socket_t
      - name: '*(*getbase)(struct evconnlistener *)'
        type: struct event_base
      item_type: struct
      name: evconnlistener_ops
      pos:
        line_end: 79
        line_start: 72
        source_file: /src/libevent/listener.c
    - fields:
      - name: '*ops'
        type: struct evconnlistener_ops
      - name: '*lock'
        type: void
      - name: cb
        type: evconnlistener_cb
      - name: errorcb
        type: evconnlistener_errorcb
      - name: '*user_data'
        type: void
      - name: flags
        type: unsigned
      - name: refcnt
        type: short
      - name: accept4_flags
        type: int
      - name: enabled
        type: unsigned
      item_type: struct
      name: evconnlistener
      pos:
        line_end: 91
        line_start: 81
        source_file: /src/libevent/listener.c
    - fields:
      - name: base
        type: struct evconnlistener
      - name: listener
        type: struct event
      item_type: struct
      name: evconnlistener_event
      pos:
        line_end: 96
        line_start: 93
        source_file: /src/libevent/listener.c
    - fields:
      - name: base
        type: struct evconnlistener
      - name: fd
        type: evutil_socket_t
      - name: '*event_base'
        type: struct event_base
      - name: '*port'
        type: struct event_iocp_port
      - name: n_accepting
        type: short
      - name: shutting_down
        type: unsigned
      - name: event_added
        type: unsigned
      - name: '**accepting'
        type: struct accepting_socket
      item_type: struct
      name: evconnlistener_iocp
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/libevent/listener.c
    - fields:
      - name: lock
        type: CRITICAL_SECTION
      - name: overlapped
        type: struct event_overlapped
      - name: s
        type: SOCKET
      - name: error
        type: int
      - name: deferred
        type: struct event_callback
      - name: '*lev'
        type: struct evconnlistener_iocp
      - name: buflen
        type: ev_uint8_t
      - name: family
        type: ev_uint8_t
      - name: free_on_cb
        type: unsigned
      - name: addrbuf[1]
        type: char
      item_type: struct
      name: accepting_socket
      pos:
        line_end: 507
        line_start: 496
        source_file: /src/libevent/listener.c
    typedefs: []
    union: []
- function_names:
  - MIN
  - MAX
  - ASSERT_VALID_REQUEST
  - EDNS_ENABLED
  - evdns_get_global_base
  - TO_SERVER_REQUEST
  - REQ_HEAD
  - EVDNS_LOCK
  - EVDNS_UNLOCK
  - ASSERT_LOCKED
  - EVDNS_LOCK
  - EVDNS_UNLOCK
  - ASSERT_LOCKED
  - evdns_set_log_fn
  - evdns_log_
  - init_tcp_connection
  - evdns_tcp_disconnect
  - evdns_add_tcp_client
  - evdns_remove_tcp_client
  - evdns_remove_all_tcp_clients
  - new_tcp_connection
  - disconnect_and_free_connection
  - request_find_from_trans_id
  - nameserver_prod_callback
  - nameserver_probe_failed
  - request_swap_ns
  - nameserver_failed
  - nameserver_up
  - request_trans_id_set
  - request_finished
  - request_reissue
  - evdns_requests_pump_waiting_queue
  - reply_run_callback
  - reply_schedule_callback
  - client_retransmit_through_tcp
  - reply_handle
  - name_parse
  - GET32
  - GET16
  - GET8
  - reply_parse
  - request_parse
  - transaction_id_pick
  - nameserver_pick
  - nameserver_read
  - server_udp_port_read
  - server_send_response
  - server_port_flush
  - nameserver_write_waiting
  - nameserver_ready_callback
  - server_port_ready_callback
  - dnslabel_table_init
  - dnslabel_clear
  - dnslabel_table_get_pos
  - dnslabel_table_add
  - dnsname_to_labels
  - APPEND16
  - APPEND32
  - evdns_request_len
  - evdns_request_data_build
  - evdns_add_server_port_with_base
  - evdns_add_server_port_with_listener
  - tcp_read_message
  - server_tcp_read_packet_cb
  - server_tcp_event_cb
  - incoming_conn_cb
  - evdns_add_server_port
  - evdns_close_server_port
  - evdns_server_request_add_reply
  - evdns_server_request_add_a_reply
  - evdns_server_request_add_aaaa_reply
  - evdns_server_request_add_ptr_reply
  - evdns_server_request_add_cname_reply
  - evdns_server_request_set_flags
  - evdns_server_request_format_response
  - evdns_server_request_respond
  - server_request_free_answers
  - server_request_free
  - server_port_free
  - evdns_server_request_drop
  - evdns_server_request_get_requesting_addr
  - retransmit_all_tcp_requests_for
  - evdns_request_timeout_callback
  - evdns_request_transmit_to
  - evdns_tcp_connect_if_disconnected
  - client_tcp_read_packet_cb
  - client_tcp_event_cb
  - evdns_request_transmit_through_tcp
  - evdns_request_transmit
  - nameserver_probe_callback
  - nameserver_send_probe
  - evdns_transmit
  - evdns_base_count_nameservers
  - evdns_count_nameservers
  - evdns_base_clear_nameservers_and_suspend
  - evdns_clear_nameservers_and_suspend
  - evdns_base_resume
  - evdns_resume
  - evdns_nameserver_add_impl_
  - evdns_base_nameserver_add
  - evdns_nameserver_add
  - sockaddr_setport
  - sockaddr_getport
  - evdns_base_nameserver_ip_add
  - evdns_nameserver_ip_add
  - evdns_base_nameserver_sockaddr_add
  - evdns_base_get_nameserver_addr
  - evdns_base_get_nameserver_fd
  - evdns_request_remove
  - evdns_request_insert
  - string_num_dots
  - request_new
  - request_clone
  - request_submit
  - evdns_cancel_request
  - evdns_base_resolve_ipv4
  - evdns_resolve_ipv4
  - evdns_base_resolve_ipv6
  - evdns_resolve_ipv6
  - evdns_base_resolve_reverse
  - evdns_resolve_reverse
  - evdns_base_resolve_reverse_ipv6
  - evdns_resolve_reverse_ipv6
  - search_state_decref
  - search_state_new
  - search_postfix_clear
  - evdns_base_search_clear
  - evdns_search_clear
  - search_postfix_add
  - search_reverse
  - evdns_base_search_add
  - evdns_search_add
  - evdns_base_search_ndots_set
  - evdns_search_ndots_set
  - search_set_from_hostname
  - search_make_new
  - search_request_new
  - search_try_next
  - search_request_finished
  - evdns_resolv_set_defaults
  - strtok_r
  - strtoint
  - evdns_strtotimeval
  - strtoint_clipped
  - evdns_base_set_max_requests_inflight
  - evdns_base_set_option
  - str_matches_option
  - evdns_server_port_set_option
  - evdns_base_set_option_impl
  - evdns_set_option
  - resolv_conf_parse_line
  - evdns_base_resolv_conf_parse
  - evdns_get_default_hosts_filename
  - evdns_base_resolv_conf_parse_impl
  - evdns_resolv_conf_parse
  - evdns_nameserver_ip_add_line
  - load_nameservers_with_getadaptersaddresses_unlocked
  - load_nameservers_with_getadaptersaddresses
  - config_nameserver_from_reg_key
  - load_nameservers_from_registry
  - TRY
  - evdns_base_config_windows_nameservers
  - evdns_config_windows_nameservers
  - evdns_base_new
  - evdns_init
  - evdns_err_to_string
  - evdns_nameserver_free
  - evdns_cache_compare
  - evdns_cache_free
  - evdns_base_free_and_unlock
  - evdns_base_free
  - evdns_base_clear_host_addresses
  - evdns_shutdown
  - evdns_base_parse_hosts_line
  - evdns_base_load_hosts_impl
  - evdns_base_load_hosts
  - evdns_err_to_getaddrinfo_err
  - getaddrinfo_merge_err
  - free_getaddrinfo_request
  - add_cname_to_reply
  - evdns_getaddrinfo_timeout_cb
  - evdns_getaddrinfo_set_timeout
  - evdns_result_is_answer
  - evdns_ttl_expired
  - evdns_cache_write
  - evdns_cache_lookup
  - evdns_getaddrinfo_gotresolve
  - find_hosts_entry
  - evdns_getaddrinfo_fromhosts
  - evdns_getaddrinfo
  - evdns_getaddrinfo_cancel
  source_file: /src/libevent/evdns.c
  types:
    enum:
    - enumerators:
      - name: TS_DISCONNECTED
      - name: TS_CONNECTING
      - name: TS_CONNECTED
      item_type: enum
      name: tcp_state
      pos:
        line_end: 250
        line_start: 246
        source_file: /src/libevent/evdns.c
    preproc_defs:
    - item_type: preproc_def
      name: _FORTIFY_SOURCE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/evdns.c
      type_or_value: '3'
    - item_type: preproc_def
      name: _WIN32_IE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libevent/evdns.c
      type_or_value: '0x400'
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libevent/evdns.c
      type_or_value: strcmpi
    - item_type: preproc_def
      name: EVDNS_LOG_DEBUG
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libevent/evdns.c
      type_or_value: EVENT_LOG_DEBUG
    - item_type: preproc_def
      name: EVDNS_LOG_WARN
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libevent/evdns.c
      type_or_value: EVENT_LOG_WARN
    - item_type: preproc_def
      name: EVDNS_LOG_MSG
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libevent/evdns.c
      type_or_value: EVENT_LOG_MSG
    - item_type: preproc_def
      name: EVDNS_NAME_MAX
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/evdns.c
      type_or_value: '255'
    - item_type: preproc_def
      name: u64
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint64_t
    - item_type: preproc_def
      name: u32
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint32_t
    - item_type: preproc_def
      name: u16
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint16_t
    - item_type: preproc_def
      name: u8
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint8_t
    - item_type: preproc_def
      name: MAX_V4_ADDRS
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libevent/evdns.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_V6_ADDRS
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/libevent/evdns.c
      type_or_value: '32'
    - item_type: preproc_def
      name: DNS_MAX_UDP_SIZE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libevent/evdns.c
      type_or_value: '512'
    - item_type: preproc_def
      name: EDNS_MAX_UDP_SIZE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libevent/evdns.c
      type_or_value: '65535'
    - item_type: preproc_def
      name: TYPE_A
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_A
    - item_type: preproc_def
      name: TYPE_CNAME
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/evdns.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TYPE_PTR
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_PTR
    - item_type: preproc_def
      name: TYPE_SOA
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_SOA
    - item_type: preproc_def
      name: TYPE_AAAA
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_AAAA
    - item_type: preproc_def
      name: TYPE_OPT
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libevent/evdns.c
      type_or_value: '41'
    - item_type: preproc_def
      name: CLASS_INET
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_CLASS_INET
    - item_type: preproc_def
      name: SERVER_IDLE_CONN_TIMEOUT
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/evdns.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CLIENT_IDLE_CONN_TIMEOUT
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libevent/evdns.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_CLIENT_CONNECTIONS
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libevent/evdns.c
      type_or_value: '10'
    - item_type: preproc_def
      name: EVDNS_LOG_CHECK
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/libevent/evdns.c
      type_or_value: __attribute__ ((format(printf, 2, 3)))
    - item_type: preproc_def
      name: log
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/libevent/evdns.c
      type_or_value: evdns_log_
    - item_type: preproc_def
      name: _QR_MASK
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/libevent/evdns.c
      type_or_value: 0x8000U
    - item_type: preproc_def
      name: _OP_MASK
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/libevent/evdns.c
      type_or_value: 0x7800U
    - item_type: preproc_def
      name: _AA_MASK
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0400U
    - item_type: preproc_def
      name: _TC_MASK
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0200U
    - item_type: preproc_def
      name: _RD_MASK
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0100U
    - item_type: preproc_def
      name: _RA_MASK
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0080U
    - item_type: preproc_def
      name: _Z_MASK
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0040U
    - item_type: preproc_def
      name: _AD_MASK
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0020U
    - item_type: preproc_def
      name: _CD_MASK
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0010U
    - item_type: preproc_def
      name: _RCODE_MASK
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/libevent/evdns.c
      type_or_value: 0x000fU
    - item_type: preproc_def
      name: _Z_MASK_DEPRECATED
      pos:
        line_end: 1104
        line_start: 1103
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0070U
    - item_type: preproc_def
      name: SKIP_NAME
      pos:
        line_end: 1313
        line_start: 1307
        source_file: /src/libevent/evdns.c
      type_or_value: "do { tmp_name[0] = '\\0';\t\t\t\t\\\n\t\tif (name_parse(packet,
        length, &j, tmp_name,\t\\\n\t\t\tsizeof(tmp_name))<0)\t\t\t\\\n\t\t\tgoto
        err;\t\t\t\t\\\n\t} while (0)"
    - item_type: preproc_def
      name: SKIP_RR
      pos:
        line_end: 1539
        line_start: 1536
        source_file: /src/libevent/evdns.c
      type_or_value: "do { \\\n\t\tSKIP_NAME; \\\n\t\tj += 2 "
    - item_type: preproc_def
      name: MAX_LABELS
      pos:
        line_end: 1859
        line_start: 1858
        source_file: /src/libevent/evdns.c
      type_or_value: '128'
    - item_type: preproc_def
      name: NEXT_TOKEN
      pos:
        line_end: 4456
        line_start: 4455
        source_file: /src/libevent/evdns.c
      type_or_value: strtok_r(NULL, delims, &strtok_state)
    - item_type: preproc_def
      name: SERVICES_KEY
      pos:
        line_end: 4757
        line_start: 4756
        source_file: /src/libevent/evdns.c
      type_or_value: TEXT("System\\CurrentControlSet\\Services\\")
    - item_type: preproc_def
      name: WIN_NS_9X_KEY
      pos:
        line_end: 4758
        line_start: 4757
        source_file: /src/libevent/evdns.c
      type_or_value: SERVICES_KEY TEXT("VxD\\MSTCP")
    - item_type: preproc_def
      name: WIN_NS_NT_KEY
      pos:
        line_end: 4759
        line_start: 4758
        source_file: /src/libevent/evdns.c
      type_or_value: SERVICES_KEY TEXT("Tcpip\\Parameters")
    - item_type: preproc_def
      name: EVDNS_BASE_ALL_FLAGS
      pos:
        line_end: 4915
        line_start: 4909
        source_file: /src/libevent/evdns.c
      type_or_value: "( \\\n\tEVDNS_BASE_INITIALIZE_NAMESERVERS | \\\n\tEVDNS_BASE_DISABLE_WHEN_INACTIVE
        \ | \\\n\tEVDNS_BASE_NAMESERVERS_NO_DEFAULT | \\\n\tEVDNS_BASE_NO_CACHE               |
        \\\n\t0)"
    - item_type: preproc_def
      name: NEXT_TOKEN
      pos:
        line_end: 5129
        line_start: 5128
        source_file: /src/libevent/evdns.c
      type_or_value: strtok_r(NULL, delims, &strtok_state)
    structs:
    - fields:
      - name: type
        type: unsigned int
      - name: have_answer
        type: unsigned int
      - name: rr_count
        type: u32
      - name: data
        type: "union {\n\t\tu32 *a;\n\t\tstruct in6_addr *aaaa;\n\t\tchar *ptr_name;\n\t\tvoid
          *raw;\n\t}"
      - name: '*cname'
        type: char
      item_type: struct
      name: reply
      pos:
        line_end: 186
        line_start: 175
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*current_req'
        type: struct request
      - name: '*base'
        type: struct evdns_base
      - name: pending_cb
        type: int
      - name: deferred
        type: struct event_callback
      - name: user_callback
        type: evdns_callback_type
      - name: '*user_pointer'
        type: void
      - name: request_type
        type: u8
      - name: have_reply
        type: u8
      - name: ttl
        type: u32
      - name: err
        type: u32
      - name: reply
        type: struct reply
      - name: search_index
        type: int
      - name: '*search_state'
        type: struct search_state
      - name: '*search_origname'
        type: char
      - name: search_flags
        type: int
      - name: tcp_flags
        type: u16
      item_type: struct
      name: evdns_request
      pos:
        line_end: 216
        line_start: 193
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*request'
        type: u8
      - name: request_size
        type: u16
      - name: request_type
        type: u8
      - name: request_len
        type: unsigned int
      - name: reissue_count
        type: int
      - name: tx_count
        type: int
      - name: '*ns'
        type: struct nameserver
      - name: '*next'
        type: struct request
      - name: timeout_event
        type: struct event
      - name: trans_id
        type: u16
      - name: request_appended
        type: unsigned
      - name: transmit_me
        type: unsigned
      - name: need_cname
        type: unsigned
      - name: '**put_cname_in_ptr'
        type: char
      - name: '*base'
        type: struct evdns_base
      - name: '*handle'
        type: struct evdns_request
      item_type: struct
      name: request
      pos:
        line_end: 244
        line_start: 218
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*bev'
        type: struct bufferevent
      - name: state
        type: enum tcp_state
      - name: awaiting_packet_size
        type: u16
      item_type: struct
      name: tcp_connection
      pos:
        line_end: 256
        line_start: 252
        source_file: /src/libevent/evdns.c
    - fields:
      - name: (client_tcp_connection)
        type: LIST_ENTRY
      - name: connection
        type: struct tcp_connection
      - name: '*port'
        type: struct evdns_server_port
      item_type: struct
      name: client_tcp_connection
      pos:
        line_end: 264
        line_start: 260
        source_file: /src/libevent/evdns.c
    - fields:
      - name: socket
        type: evutil_socket_t
      - name: '*connection'
        type: struct tcp_connection
      - name: address
        type: struct sockaddr_storage
      - name: addrlen
        type: ev_socklen_t
      - name: failed_times
        type: int
      - name: timedout
        type: int
      - name: event
        type: struct event
      - name: '*next'
        type: struct nameserver
      - name: timeout_event
        type: struct event
      - name: '*probe_request'
        type: struct evdns_request
      - name: state
        type: char
      - name: choked
        type: char
      - name: write_waiting
        type: char
      - name: '*base'
        type: struct evdns_base
      - name: requests_inflight
        type: int
      item_type: struct
      name: nameserver
      pos:
        line_end: 289
        line_start: 266
        source_file: /src/libevent/evdns.c
    - fields:
      - name: socket
        type: evutil_socket_t
      - name: refcnt
        type: int
      - name: choked
        type: char
      - name: closing
        type: char
      - name: user_callback
        type: evdns_request_callback_fn_type
      - name: '*user_data'
        type: void
      - name: event
        type: struct event
      - name: '*pending_replies'
        type: struct server_request
      - name: '*event_base'
        type: struct event_base
      - name: '*listener'
        type: struct evconnlistener
      - name: client_connections_count
        type: unsigned
      - name: max_client_connections
        type: unsigned
      - name: tcp_idle_timeout
        type: struct timeval
      item_type: struct
      name: evdns_server_port
      pos:
        line_end: 315
        line_start: 293
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*next'
        type: struct server_reply_item
      - name: '*name'
        type: char
      - name: type
        type: u16
      - name: class
        type: u16
      - name: ttl
        type: u32
      - name: is_name
        type: char
      - name: datalen
        type: u16
      - name: '*data'
        type: void
      item_type: struct
      name: server_reply_item
      pos:
        line_end: 327
        line_start: 318
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*next_pending'
        type: struct server_request
      - name: '*prev_pending'
        type: struct server_request
      - name: trans_id
        type: u16
      - name: '*port'
        type: struct evdns_server_port
      - name: '*client'
        type: struct client_tcp_connection
      - name: addr
        type: struct sockaddr_storage
      - name: addrlen
        type: ev_socklen_t
      - name: max_udp_reply_size
        type: u16
      - name: n_answer
        type: int
      - name: n_authority
        type: int
      - name: n_additional
        type: int
      - name: '*answer'
        type: struct server_reply_item
      - name: '*authority'
        type: struct server_reply_item
      - name: '*additional'
        type: struct server_reply_item
      - name: '*response'
        type: char
      - name: response_len
        type: size_t
      - name: base
        type: struct evdns_server_request
      item_type: struct
      name: server_request
      pos:
        line_end: 360
        line_start: 331
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '**req_heads'
        type: struct request
      - name: '*req_waiting_head'
        type: struct request
      - name: '*server_head'
        type: struct nameserver
      - name: n_req_heads
        type: int
      - name: '*event_base'
        type: struct event_base
      - name: global_good_nameservers
        type: int
      - name: global_requests_inflight
        type: int
      - name: global_requests_waiting
        type: int
      - name: global_max_requests_inflight
        type: int
      - name: global_timeout
        type: struct timeval
      - name: global_max_reissues
        type: int
      - name: global_max_retransmits
        type: int
      - name: global_max_nameserver_timeout
        type: int
      - name: global_randomize_case
        type: int
      - name: global_max_udp_size
        type: u16
      - name: global_nameserver_probe_initial_timeout
        type: struct timeval
      - name: global_tcp_flags
        type: u16
      - name: global_tcp_idle_timeout
        type: struct timeval
      - name: global_outgoing_address
        type: struct sockaddr_storage
      - name: global_outgoing_addrlen
        type: ev_socklen_t
      - name: global_getaddrinfo_allow_skew
        type: struct timeval
      - name: so_rcvbuf
        type: int
      - name: so_sndbuf
        type: int
      - name: getaddrinfo_ipv4_timeouts
        type: int
      - name: getaddrinfo_ipv6_timeouts
        type: int
      - name: getaddrinfo_ipv4_answered
        type: int
      - name: getaddrinfo_ipv6_answered
        type: int
      - name: '*global_search_state'
        type: struct search_state
      - name: disable_when_inactive
        type: int
      - name: disable_cache
        type: int
      - name: ns_max_probe_timeout
        type: int
      - name: ns_timeout_backoff_factor
        type: int
      item_type: struct
      name: evdns_base
      pos:
        line_end: 442
        line_start: 362
        source_file: /src/libevent/evdns.c
    - fields:
      - name: (hosts_entry)
        type: TAILQ_ENTRY
      - name: addr
        type: "union {\n\t\tstruct sockaddr sa;\n\t\tstruct sockaddr_in sin;\n\t\tstruct
          sockaddr_in6 sin6;\n\t}"
      - name: addrlen
        type: int
      - name: hostname[1]
        type: char
      item_type: struct
      name: hosts_entry
      pos:
        line_end: 453
        line_start: 444
        source_file: /src/libevent/evdns.c
    - fields:
      - name: (evdns_cache)
        type: SPLAY_ENTRY
      - name: '*name'
        type: char
      - name: '*ai'
        type: struct evutil_addrinfo
      - name: ev_timeout
        type: struct event
      - name: '*base'
        type: struct evdns_base
      item_type: struct
      name: evdns_cache
      pos:
        line_end: 461
        line_start: 455
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*v'
        type: char
      - name: pos
        type: off_t
      item_type: struct
      name: dnslabel_entry
      pos:
        line_end: 1860
        line_start: 1860
        source_file: /src/libevent/evdns.c
    - fields:
      - name: n_labels
        type: int
      - name: labels[MAX_LABELS]
        type: struct dnslabel_entry
      item_type: struct
      name: dnslabel_table
      pos:
        line_end: 1865
        line_start: 1861
        source_file: /src/libevent/evdns.c
    - fields:
      - name: len
        type: int
      - name: '*next'
        type: struct search_domain
      item_type: struct
      name: search_domain
      pos:
        line_end: 3869
        line_start: 3865
        source_file: /src/libevent/evdns.c
    - fields:
      - name: refcount
        type: int
      - name: ndots
        type: int
      - name: num_domains
        type: int
      - name: '*head'
        type: struct search_domain
      item_type: struct
      name: search_state
      pos:
        line_end: 3876
        line_start: 3871
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*r'
        type: struct evdns_request
      - name: type
        type: ev_uint32_t
      item_type: struct
      name: getaddrinfo_subrequest
      pos:
        line_end: 5226
        line_start: 5223
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*evdns_base'
        type: struct evdns_base
      - name: hints
        type: struct evutil_addrinfo
      - name: '*nodename'
        type: char
      - name: user_cb
        type: evdns_getaddrinfo_cb
      - name: '*user_data'
        type: void
      - name: port
        type: ev_uint16_t
      - name: ipv4_request
        type: struct getaddrinfo_subrequest
      - name: ipv6_request
        type: struct getaddrinfo_subrequest
      - name: '*cname_result'
        type: char
      - name: '*pending_result'
        type: struct evutil_addrinfo
      - name: pending_result_ttl
        type: int
      - name: timeout
        type: struct event
      - name: pending_error
        type: int
      - name: user_canceled
        type: unsigned
      - name: request_done
        type: unsigned
      item_type: struct
      name: evdns_getaddrinfo_request
      pos:
        line_end: 5265
        line_start: 5229
        source_file: /src/libevent/evdns.c
    typedefs:
    - item_type: typedef
      name: (WINAPI *GetAdaptersAddresses_fn_t)(ULONG, ULONG, PVOID, PIP_ADAPTER_ADDRESSES,
        PULONG)
      pos:
        line_end: 4630
        line_start: 4630
        source_file: /src/libevent/evdns.c
      type: DWORD
    union: []
- function_names:
  - BIO_meth_new
  - BIO_meth_set_write
  - BIO_meth_set_read
  - BIO_meth_set_puts
  - BIO_meth_set_ctrl
  - BIO_meth_set_create
  - BIO_meth_set_destroy
  - BIO_set_init
  - BIO_set_data
  - BIO_set_shutdown
  - BIO_get_init
  - BIO_get_data
  - BIO_get_shutdown
  - BIO_get_init
  source_file: /src/libevent/openssl-compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TLS_method
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libevent/openssl-compat.h
      type_or_value: SSLv23_method
    - item_type: preproc_def
      name: X509_getm_notBefore
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libevent/openssl-compat.h
      type_or_value: X509_get_notBefore
    - item_type: preproc_def
      name: X509_getm_notAfter
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libevent/openssl-compat.h
      type_or_value: X509_get_notAfter
    structs: []
    typedefs: []
    union: []
- function_names:
  - min_heap_elem_greater
  - min_heap_ctor_
  - min_heap_dtor_
  - min_heap_elem_init_
  - min_heap_empty_
  - min_heap_size_
  - min_heap_top_
  - min_heap_push_
  - min_heap_pop_
  - min_heap_elt_is_top_
  - min_heap_erase_
  - min_heap_adjust_
  - min_heap_reserve_
  - min_heap_shift_up_unconditional_
  - min_heap_shift_up_
  - min_heap_shift_down_
  source_file: /src/libevent/minheap-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '** p'
        type: struct event
      - name: n
        type: size_t
      item_type: struct
      name: min_heap
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/libevent/minheap-internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/http-internal.h
  types:
    enum:
    - enumerators:
      - name: ALL_DATA_READ
        value: '1'
      - name: REQUEST_CANCELED
        value: '-2'
      - name: DATA_CORRUPTED
        value: '-1'
      - name: MORE_DATA_EXPECTED
        value: '0'
      - name: DATA_TOO_LONG
        value: '-3'
      item_type: enum
      name: message_read_status
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/libevent/http-internal.h
    - enumerators:
      - name: EVCON_DISCONNECTED
      - name: EVCON_IDLE
      - name: EVCON_READING_FIRSTLINE
      - name: EVCON_READING_HEADERS
      - name: EVCON_CONNECTING
      - name: EVCON_READING_BODY
      - name: EVCON_READING_TRAILER
      - name: EVCON_WRITING
      item_type: enum
      name: evhttp_connection_state
      pos:
        line_end: 43
        line_start: 33
        source_file: /src/libevent/http-internal.h
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_CONNECT_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/libevent/http-internal.h
      type_or_value: '45'
    - item_type: preproc_def
      name: HTTP_WRITE_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libevent/http-internal.h
      type_or_value: '50'
    - item_type: preproc_def
      name: HTTP_READ_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/libevent/http-internal.h
      type_or_value: '50'
    - item_type: preproc_def
      name: HTTP_INITIAL_RETRY_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/libevent/http-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVHTTP_CON_INCOMING
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x0001       '
    - item_type: preproc_def
      name: EVHTTP_CON_OUTGOING
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x0002       '
    - item_type: preproc_def
      name: EVHTTP_CON_CLOSEDETECT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x0004   '
    - item_type: preproc_def
      name: EVHTTP_CON_AUTOFREE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/http-internal.h
      type_or_value: EVHTTP_CON_PUBLIC_FLAGS_END
    - item_type: preproc_def
      name: EVHTTP_CON_READING_ERROR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/http-internal.h
      type_or_value: (EVHTTP_CON_AUTOFREE << 1)
    - item_type: preproc_def
      name: EVHTTP_CON_TIMEOUT_ADJUSTED
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/http-internal.h
      type_or_value: (EVHTTP_CON_READING_ERROR << 1)
    - item_type: preproc_def
      name: _EVHTTP_URI_HOST_HAS_BRACKETS
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x02'
    structs:
    - fields:
      - name: (evhttp_connection)
        type: TAILQ_ENTRY
      - name: '*bufev'
        type: struct bufferevent
      - name: retry_ev
        type: struct event
      - name: '*bind_address'
        type: char
      - name: bind_port
        type: ev_uint16_t
      - name: '*address'
        type: char
      - name: port
        type: ev_uint16_t
      - name: max_headers_size
        type: size_t
      - name: max_body_size
        type: ev_uint64_t
      - name: flags
        type: int
      - name: timeout_connect
        type: struct timeval
      - name: timeout_read
        type: struct timeval
      - name: timeout_write
        type: struct timeval
      - name: retry_cnt
        type: int
      - name: retry_max
        type: int
      - name: initial_retry_timeout
        type: struct timeval
      - name: state
        type: enum evhttp_connection_state
      - name: '*http_server'
        type: struct evhttp
      - name: (*cb)(struct evhttp_connection *, void *)
        type: void
      - name: '*cb_arg'
        type: void
      - name: (*closecb)(struct evhttp_connection *, void *)
        type: void
      - name: '*closecb_arg'
        type: void
      - name: read_more_deferred_cb
        type: struct event_callback
      - name: '*base'
        type: struct event_base
      - name: '*dns_base'
        type: struct evdns_base
      - name: ai_family
        type: int
      - name: ext_method_cmp
        type: evhttp_ext_method_cb
      item_type: struct
      name: evhttp_connection
      pos:
        line_end: 111
        line_start: 48
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: (evhttp_cb)
        type: TAILQ_ENTRY
      - name: '*what'
        type: char
      - name: (*cb)(struct evhttp_request *req, void *)
        type: void
      - name: '*cbarg'
        type: void
      item_type: struct
      name: evhttp_cb
      pos:
        line_end: 121
        line_start: 114
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: (evhttp_bound_socket)
        type: TAILQ_ENTRY
      - name: '*http'
        type: struct evhttp
      - name: '* (*bevcb)(struct event_base *, void *)'
        type: struct bufferevent
      - name: '*bevcbarg'
        type: void
      - name: '*listener'
        type: struct evconnlistener
      item_type: struct
      name: evhttp_bound_socket
      pos:
        line_end: 138
        line_start: 130
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: (evhttp_server_alias)
        type: TAILQ_ENTRY
      - name: '*alias'
        type: char
      item_type: struct
      name: evhttp_server_alias
      pos:
        line_end: 145
        line_start: 141
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: next_vhost
        type: TAILQ_ENTRY
      - name: connections
        type: struct evconq
      - name: ws_sessions
        type: struct evwsq
      - name: connection_max
        type: int
      - name: connection_cnt
        type: int
      - name: '*vhost_pattern'
        type: char
      - name: timeout_read
        type: struct timeval
      - name: timeout_write
        type: struct timeval
      - name: default_max_headers_size
        type: size_t
      - name: default_max_body_size
        type: ev_uint64_t
      - name: flags
        type: int
      - name: '*default_content_type'
        type: char
      - name: allowed_methods
        type: ev_uint32_t
      - name: (*gencb)(struct evhttp_request *req, void *)
        type: void
      - name: '*gencbarg'
        type: void
      - name: '* (*bevcb)(struct event_base *, void *)'
        type: struct bufferevent
      - name: '*bevcbarg'
        type: void
      - name: (*newreqcb)(struct evhttp_request *req, void *)
        type: int
      - name: '*newreqcbarg'
        type: void
      - name: (*errorcb)(struct evhttp_request *, struct evbuffer *, int, const char
          *, void *)
        type: int
      - name: '*errorcbarg'
        type: void
      - name: '*base'
        type: struct event_base
      - name: ext_method_cmp
        type: evhttp_ext_method_cb
      item_type: struct
      name: evhttp
      pos:
        line_end: 198
        line_start: 147
        source_file: /src/libevent/http-internal.h
    typedefs: []
    union: []
- function_names:
  - XFREE
  - FD_SET_ALLOC_SIZE
  - grow_fd_sets
  - do_fd_set
  - do_fd_clear
  - win32_init
  - win32_add
  - win32_del
  - fd_set_copy
  - win32_dispatch
  - win32_dealloc
  source_file: /src/libevent/win32select.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libevent/win32select.c
      type_or_value: '32'
    structs:
    - fields:
      - name: fd_count
        type: unsigned int
      - name: fd_array[1]
        type: SOCKET
      item_type: struct
      name: win_fd_set
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/libevent/win32select.c
    - fields:
      - name: read_pos_plus1
        type: int
      - name: write_pos_plus1
        type: int
      item_type: struct
      name: idx_info
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/libevent/win32select.c
    - fields:
      - name: num_fds_in_fd_sets
        type: unsigned
      - name: resize_out_sets
        type: int
      - name: '*readset_in'
        type: struct win_fd_set
      - name: '*writeset_in'
        type: struct win_fd_set
      - name: '*readset_out'
        type: struct win_fd_set
      - name: '*writeset_out'
        type: struct win_fd_set
      - name: '*exset_out'
        type: struct win_fd_set
      - name: signals_are_broken
        type: unsigned
      item_type: struct
      name: win32op
      pos:
        line_end: 80
        line_start: 71
        source_file: /src/libevent/win32select.c
    typedefs: []
    union: []
- function_names:
  - EVTHREAD_GET_ID
  - EVBASE_IN_THREAD
  - EVBASE_NEED_NOTIFY
  - EVTHREAD_ALLOC_LOCK
  - EVTHREAD_FREE_LOCK
  - EVLOCK_LOCK
  - EVLOCK_UNLOCK
  - EVLOCK_SORTLOCKS_
  - EVBASE_ACQUIRE_LOCK
  - EVBASE_RELEASE_LOCK
  - EVLOCK_ASSERT_LOCKED
  - EVLOCK_TRY_LOCK_
  - EVTHREAD_ALLOC_COND
  - EVTHREAD_FREE_COND
  - EVTHREAD_COND_SIGNAL
  - EVTHREAD_COND_BROADCAST
  - EVTHREAD_COND_WAIT
  - EVTHREAD_COND_WAIT_TIMED
  - EVTHREAD_LOCKING_ENABLED
  - EVTHREAD_GET_ID
  - EVBASE_IN_THREAD
  - EVBASE_NEED_NOTIFY
  - EVTHREAD_ALLOC_LOCK
  - EVTHREAD_FREE_LOCK
  - EVLOCK_LOCK
  - EVLOCK_UNLOCK
  - EVBASE_ACQUIRE_LOCK
  - EVBASE_RELEASE_LOCK
  - EVLOCK_ASSERT_LOCKED
  - EVLOCK_TRY_LOCK_
  - EVTHREAD_ALLOC_COND
  - EVTHREAD_FREE_COND
  - EVTHREAD_COND_SIGNAL
  - EVTHREAD_COND_BROADCAST
  - EVTHREAD_COND_WAIT
  - EVTHREAD_COND_WAIT_TIMED
  - EVTHREAD_LOCKING_ENABLED
  - EVTHREAD_GET_ID
  - EVTHREAD_ALLOC_LOCK
  - EVTHREAD_FREE_LOCK
  - EVLOCK_LOCK
  - EVLOCK_UNLOCK
  - EVLOCK_LOCK2
  - EVLOCK_UNLOCK2
  - EVBASE_IN_THREAD
  - EVBASE_NEED_NOTIFY
  - EVBASE_ACQUIRE_LOCK
  - EVBASE_RELEASE_LOCK
  - EVLOCK_ASSERT_LOCKED
  - EVLOCK_TRY_LOCK_
  - EVTHREAD_ALLOC_COND
  - EVTHREAD_FREE_COND
  - EVTHREAD_COND_SIGNAL
  - EVTHREAD_COND_BROADCAST
  - EVTHREAD_COND_WAIT
  - EVTHREAD_COND_WAIT_TIMED
  - EVTHREAD_LOCKING_ENABLED
  - EVLOCK_SORTLOCKS_
  - EVLOCK_LOCK2
  - EVLOCK_UNLOCK2
  - EVTHREAD_SETUP_GLOBAL_LOCK
  source_file: /src/libevent/evthread-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - upcast
  - downcast
  - incref_and_lock
  - decref_and_unlock
  - bufferevent_pair_elt_new
  - bufferevent_pair_new
  - be_pair_transfer
  - be_pair_wants_to_talk
  - be_pair_outbuf_cb
  - be_pair_enable
  - be_pair_disable
  - be_pair_unlink
  - be_pair_destruct
  - be_pair_flush
  - bufferevent_pair_get_partner
  source_file: /src/libevent/bufferevent_pair.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: '*partner'
        type: struct bufferevent_pair
      - name: '*unlinked_partner'
        type: struct bufferevent_pair
      item_type: struct
      name: bufferevent_pair
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/libevent/bufferevent_pair.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/evmap-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PTR_TO_UDATA
  - INT_TO_UDATA
  - PTR_TO_UDATA
  - INT_TO_UDATA
  - PTR_TO_UDATA
  - INT_TO_UDATA
  - kq_init
  - kq_setup_kevent
  - kq_grow_events
  - kq_build_changes_list
  - kq_dispatch
  - kqop_free
  - kq_dealloc
  - kq_sig_add
  - kq_sig_del
  - event_kq_add_notify_event_
  - event_kq_notify_base_
  source_file: /src/libevent/kqueue.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/kqueue.c
      type_or_value: '64'
    - item_type: preproc_def
      name: ADD_UDATA
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libevent/kqueue.c
      type_or_value: '0x30303'
    - item_type: preproc_def
      name: NOTIFY_IDENT
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/libevent/kqueue.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*events'
        type: struct kevent
      - name: events_size
        type: int
      - name: kq
        type: int
      - name: notify_event_added
        type: int
      - name: pid
        type: pid_t
      item_type: struct
      name: kqop
      pos:
        line_end: 82
        line_start: 76
        source_file: /src/libevent/kqueue.c
    typedefs: []
    union: []
- function_names:
  - upcast_evbuffer
  - pin_release
  - evbuffer_commit_read_
  - evbuffer_commit_write_
  - evbuffer_overlapped_new_
  - evbuffer_launch_write_
  - evbuffer_launch_read_
  - evbuffer_overlapped_get_fd_
  - evbuffer_overlapped_set_fd_
  source_file: /src/libevent/buffer_iocp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_WSABUFS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/buffer_iocp.c
      type_or_value: '16'
    structs:
    - fields:
      - name: buffer
        type: struct evbuffer
      - name: fd
        type: evutil_socket_t
      - name: read_in_progress
        type: unsigned
      - name: write_in_progress
        type: unsigned
      - name: '*first_pinned'
        type: struct evbuffer_chain
      - name: n_buffers
        type: int
      - name: buffers[MAX_WSABUFS]
        type: WSABUF
      item_type: struct
      name: evbuffer_overlapped
      pos:
        line_end: 69
        line_start: 53
        source_file: /src/libevent/buffer_iocp.c
    typedefs: []
    union: []
- function_names:
  - NT_SUCCESS
  - RTL_CONSTANT_STRING
  - RTL_CONSTANT_OBJECT_ATTRIBUTES
  - NT_NTDLL_IMPORT_LIST
  - X
  - return_map_error
  - return_set_error
  - afd_create_helper_handle
  - afd_poll
  - afd_cancel_poll
  - epoll_global_init
  - epoll__create
  - epoll_create
  - epoll_create1
  - epoll_close
  - epoll_ctl
  - epoll_wait
  - ERR__ERRNO_MAPPINGS
  - err__map_win_error_to_errno
  - X
  - err_map_win_error
  - err_set_win_error
  - err_check_handle
  - array_count
  - container_of
  - unused_var
  - init__once_callback
  - init
  - X
  - nt_global_init
  - X
  - poll_group__new
  - poll_group_delete
  - poll_group_from_queue_node
  - poll_group_get_afd_helper_handle
  - poll_group_acquire
  - poll_group_release
  - port__alloc
  - port__free
  - port__create_iocp
  - port_new
  - port__close_iocp
  - port_close
  - port_delete
  - port__update_events
  - port__update_events_if_polling
  - port__feed_events
  - port__poll
  - port_wait
  - port__ctl_add
  - port__ctl_mod
  - port__ctl_del
  - port__ctl_op
  - port_ctl
  - port_register_socket_handle
  - port_unregister_socket_handle
  - port_find_socket
  - port_request_socket_update
  - port_cancel_socket_update
  - port_add_deleted_socket
  - port_remove_deleted_socket
  - port_get_iocp_handle
  - port_get_poll_group_queue
  - port_state_from_handle_tree_node
  - port_state_to_handle_tree_node
  - queue_init
  - queue_node_init
  - queue__detach_node
  - queue_first
  - queue_last
  - queue_prepend
  - queue_append
  - queue_move_first
  - queue_move_last
  - queue_remove
  - queue_empty
  - queue_enqueued
  - reflock_global_init
  - reflock_init
  - reflock__signal_event
  - reflock__await_event
  - reflock_ref
  - reflock_unref
  - reflock_unref_and_destroy
  - sock__alloc
  - sock__free
  - sock__cancel_poll
  - sock_new
  - sock__delete
  - sock_delete
  - sock_force_delete
  - sock_set_event
  - sock__epoll_events_to_afd_events
  - sock__afd_events_to_epoll_events
  - sock_update
  - sock_feed_event
  - sock_state_from_queue_node
  - sock_state_to_queue_node
  - sock_state_from_tree_node
  - sock_state_to_tree_node
  - ts_tree_init
  - ts_tree_node_init
  - ts_tree_add
  - ts_tree__find_node
  - ts_tree_del_and_ref
  - ts_tree_find_and_ref
  - ts_tree_node_unref
  - ts_tree_node_unref_and_destroy
  - tree_init
  - tree_node_init
  - TREE__ROTATE
  - TREE__INSERT_OR_DESCEND
  - TREE__REBALANCE_AFTER_INSERT
  - tree_add
  - TREE__REBALANCE_AFTER_REMOVE
  - tree_del
  - tree_find
  - tree_root
  - ws_global_init
  - ws_get_base_socket
  source_file: /src/libevent/wepoll.c
  types:
    enum:
    - enumerators:
      - name: EPOLLIN
        value: (int) (1U <<  0)
      - name: EPOLLPRI
        value: (int) (1U <<  1)
      - name: EPOLLERR
        value: (int) (1U <<  3)
      - name: EPOLLOUT
        value: (int) (1U <<  2)
      - name: EPOLLHUP
        value: (int) (1U <<  4)
      - name: EPOLLRDNORM
        value: (int) (1U <<  6)
      - name: EPOLLRDBAND
        value: (int) (1U <<  7)
      - name: EPOLLWRNORM
        value: (int) (1U <<  8)
      - name: EPOLLWRBAND
        value: (int) (1U <<  9)
      - name: EPOLLMSG
        value: (int) (1U << 10)
      - name: EPOLLONESHOT
        value: (int) (1U << 31)
      - name: EPOLLRDHUP
        value: (int) (1U << 13)
      item_type: enum
      name: EPOLL_EVENTS
      pos:
        line_end: 55
        line_start: 42
        source_file: /src/libevent/wepoll.c
    - enumerators:
      - name: SOCK__POLL_IDLE
        value: '0'
      - name: SOCK__POLL_PENDING
      - name: SOCK__POLL_CANCELLED
      item_type: enum
      name: sock__poll_status
      pos:
        line_end: 1596
        line_start: 1592
        source_file: /src/libevent/wepoll.c
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: EPOLLIN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  0)
    - item_type: preproc_def
      name: EPOLLPRI
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  1)
    - item_type: preproc_def
      name: EPOLLOUT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  2)
    - item_type: preproc_def
      name: EPOLLERR
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  3)
    - item_type: preproc_def
      name: EPOLLHUP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  4)
    - item_type: preproc_def
      name: EPOLLRDNORM
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  6)
    - item_type: preproc_def
      name: EPOLLRDBAND
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  7)
    - item_type: preproc_def
      name: EPOLLWRNORM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  8)
    - item_type: preproc_def
      name: EPOLLWRBAND
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  9)
    - item_type: preproc_def
      name: EPOLLMSG
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U << 10)
    - item_type: preproc_def
      name: EPOLLRDHUP
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U << 13)
    - item_type: preproc_def
      name: EPOLLONESHOT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U << 31)
    - item_type: preproc_def
      name: EPOLL_CTL_ADD
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/wepoll.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EPOLL_CTL_MOD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/wepoll.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EPOLL_CTL_DEL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/wepoll.c
      type_or_value: '3'
    - item_type: preproc_def
      name: WEPOLL_INTERNAL
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libevent/wepoll.c
      type_or_value: static
    - item_type: preproc_def
      name: WEPOLL_INTERNAL_VAR
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/wepoll.c
      type_or_value: static
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0x00000000L)
    - item_type: preproc_def
      name: STATUS_PENDING
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0x00000103L)
    - item_type: preproc_def
      name: STATUS_CANCELLED
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0xC0000120L)
    - item_type: preproc_def
      name: STATUS_NOT_FOUND
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0xC0000225L)
    - item_type: preproc_def
      name: FILE_OPEN
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/wepoll.c
      type_or_value: 0x00000001UL
    - item_type: preproc_def
      name: KEYEDEVENT_WAIT
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libevent/wepoll.c
      type_or_value: 0x00000001UL
    - item_type: preproc_def
      name: KEYEDEVENT_WAKE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libevent/wepoll.c
      type_or_value: 0x00000002UL
    - item_type: preproc_def
      name: KEYEDEVENT_ALL_ACCESS
      pos:
        line_end: 205
        line_start: 203
        source_file: /src/libevent/wepoll.c
      type_or_value: (STANDARD_RIGHTS_REQUIRED | KEYEDEVENT_WAIT | KEYEDEVENT_WAKE)
    - item_type: preproc_def
      name: AFD_POLL_RECEIVE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: AFD_POLL_RECEIVE_EXPEDITED
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: AFD_POLL_SEND
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: AFD_POLL_DISCONNECT
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: AFD_POLL_ABORT
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: AFD_POLL_LOCAL_CLOSE
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: AFD_POLL_ACCEPT
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: AFD_POLL_CONNECT_FAIL
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: IOCTL_AFD_POLL
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x00012024'
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/libevent/wepoll.c
      type_or_value: __inline
    - item_type: preproc_def
      name: PORT__MAX_ON_STACK_COMPLETIONS
      pos:
        line_end: 1053
        line_start: 1052
        source_file: /src/libevent/wepoll.c
      type_or_value: '256'
    - item_type: preproc_def
      name: SIO_BASE_HANDLE
      pos:
        line_end: 2188
        line_start: 2187
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x48000022'
    structs:
    - fields:
      - name: events
        type: uint32_t
      - name: data
        type: epoll_data_t
      item_type: struct
      name: epoll_event
      pos:
        line_end: 89
        line_start: 86
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Status
        type: NTSTATUS
      - name: Information
        type: ULONG_PTR
      item_type: struct
      name: _IO_STATUS_BLOCK
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Length
        type: USHORT
      - name: MaximumLength
        type: USHORT
      - name: Buffer
        type: PWSTR
      item_type: struct
      name: _UNICODE_STRING
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Length
        type: ULONG
      - name: RootDirectory
        type: HANDLE
      - name: ObjectName
        type: PUNICODE_STRING
      - name: Attributes
        type: ULONG
      - name: SecurityDescriptor
        type: PVOID
      - name: SecurityQualityOfService
        type: PVOID
      item_type: struct
      name: _OBJECT_ATTRIBUTES
      pos:
        line_end: 192
        line_start: 185
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Handle
        type: HANDLE
      - name: Events
        type: ULONG
      - name: Status
        type: NTSTATUS
      item_type: struct
      name: _AFD_POLL_HANDLE_INFO
      pos:
        line_end: 287
        line_start: 283
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Timeout
        type: LARGE_INTEGER
      - name: NumberOfHandles
        type: ULONG
      - name: Exclusive
        type: ULONG
      - name: Handles[1]
        type: AFD_POLL_HANDLE_INFO
      item_type: struct
      name: _AFD_POLL_INFO
      pos:
        line_end: 294
        line_start: 289
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: state
        type: long
      item_type: struct
      name: reflock
      pos:
        line_end: 485
        line_start: 483
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* root'
        type: tree_node_t
      item_type: struct
      name: tree
      pos:
        line_end: 505
        line_start: 503
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* left'
        type: tree_node_t
      - name: '* right'
        type: tree_node_t
      - name: '* parent'
        type: tree_node_t
      - name: key
        type: uintptr_t
      - name: red
        type: bool
      item_type: struct
      name: tree_node
      pos:
        line_end: 513
        line_start: 507
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: tree
        type: tree_t
      - name: lock
        type: SRWLOCK
      item_type: struct
      name: ts_tree
      pos:
        line_end: 527
        line_start: 524
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: tree_node
        type: tree_node_t
      - name: reflock
        type: reflock_t
      item_type: struct
      name: ts_tree_node
      pos:
        line_end: 532
        line_start: 529
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* prev'
        type: queue_node_t
      - name: '* next'
        type: queue_node_t
      item_type: struct
      name: queue_node
      pos:
        line_end: 926
        line_start: 923
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: head
        type: queue_node_t
      item_type: struct
      name: queue
      pos:
        line_end: 930
        line_start: 928
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* port_state'
        type: port_state_t
      - name: queue_node
        type: queue_node_t
      - name: afd_helper_handle
        type: HANDLE
      - name: group_size
        type: size_t
      item_type: struct
      name: poll_group
      pos:
        line_end: 954
        line_start: 949
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: iocp_handle
        type: HANDLE
      - name: sock_tree
        type: tree_t
      - name: sock_update_queue
        type: queue_t
      - name: sock_deleted_queue
        type: queue_t
      - name: poll_group_queue
        type: queue_t
      - name: handle_tree_node
        type: ts_tree_node_t
      - name: lock
        type: CRITICAL_SECTION
      - name: active_poll_count
        type: size_t
      item_type: struct
      name: port_state
      pos:
        line_end: 1063
        line_start: 1054
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: io_status_block
        type: IO_STATUS_BLOCK
      - name: poll_info
        type: AFD_POLL_INFO
      - name: queue_node
        type: queue_node_t
      - name: tree_node
        type: tree_node_t
      - name: '* poll_group'
        type: poll_group_t
      - name: base_socket
        type: SOCKET
      - name: user_data
        type: epoll_data_t
      - name: user_events
        type: uint32_t
      - name: pending_events
        type: uint32_t
      - name: poll_status
        type: sock__poll_status_t
      - name: delete_pending
        type: bool
      item_type: struct
      name: sock_state
      pos:
        line_end: 1610
        line_start: 1598
        source_file: /src/libevent/wepoll.c
    typedefs:
    - item_type: typedef
      name: '* HANDLE'
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/libevent/wepoll.c
      type: void
    - item_type: typedef
      name: SOCKET
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/libevent/wepoll.c
      type: uintptr_t
    - item_type: typedef
      name: NTSTATUS
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libevent/wepoll.c
      type: LONG
    - item_type: typedef
      name: '* PNTSTATUS'
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libevent/wepoll.c
      type: NTSTATUS
    - item_type: typedef
      name: "(NTAPI* PIO_APC_ROUTINE)(PVOID ApcContext,\n                                     PIO_STATUS_BLOCK
        IoStatusBlock,\n                                     ULONG Reserved)"
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/libevent/wepoll.c
      type: VOID
    - item_type: typedef
      name: port_state_t
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/libevent/wepoll.c
      type: port_state
    - item_type: typedef
      name: queue_t
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/libevent/wepoll.c
      type: queue
    - item_type: typedef
      name: sock_state_t
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/libevent/wepoll.c
      type: sock_state
    - item_type: typedef
      name: ts_tree_node_t
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/libevent/wepoll.c
      type: ts_tree_node
    - item_type: typedef
      name: tree_t
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/libevent/wepoll.c
      type: tree
    - item_type: typedef
      name: tree_node_t
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/libevent/wepoll.c
      type: tree_node
    - item_type: typedef
      name: '* nt__fn_ptr_cast_t'
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/libevent/wepoll.c
      type: void
    - item_type: typedef
      name: nt__fn_ptr_cast_t
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/libevent/wepoll.c
      type: FARPROC
    - item_type: typedef
      name: poll_group_t
      pos:
        line_end: 909
        line_start: 909
        source_file: /src/libevent/wepoll.c
      type: poll_group
    - item_type: typedef
      name: queue_node_t
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/libevent/wepoll.c
      type: queue_node
    union:
    - fields:
      - name: '* ptr'
        type: void
      - name: fd
        type: int
      - name: u32
        type: uint32_t
      - name: u64
        type: uint64_t
      - name: sock
        type: SOCKET
      - name: hnd
        type: HANDLE
      item_type: union
      name: epoll_data
      pos:
        line_end: 84
        line_start: 77
        source_file: /src/libevent/wepoll.c
- function_names:
  - BEV_IS_SOCKET
  - BEV_IS_FILTER
  - BEV_IS_PAIR
  - BEV_IS_SSL
  - BEV_IS_SSL
  - BEV_IS_ASYNC
  - BEV_IS_ASYNC
  - bufferevent_wm_suspend_read
  - bufferevent_wm_unsuspend_read
  - bufferevent_incref_
  - bufferevent_decref_
  - bufferevent_trigger_nolock_
  - BEV_RESET_GENERIC_READ_TIMEOUT
  - BEV_RESET_GENERIC_WRITE_TIMEOUT
  - BEV_DEL_GENERIC_READ_TIMEOUT
  - BEV_DEL_GENERIC_WRITE_TIMEOUT
  - BEV_UPCAST
  - BEV_LOCK
  - BEV_UNLOCK
  - BEV_LOCK
  - BEV_UNLOCK
  source_file: /src/libevent/bufferevent-internal.h
  types:
    enum:
    - enumerators:
      - name: BEV_CTRL_SET_FD
      - name: BEV_CTRL_GET_UNDERLYING
      - name: BEV_CTRL_GET_FD
      - name: BEV_CTRL_CANCEL_ALL
      item_type: enum
      name: bufferevent_ctrl_op
      pos:
        line_end: 240
        line_start: 235
        source_file: /src/libevent/bufferevent-internal.h
    preproc_defs:
    - item_type: preproc_def
      name: BEV_SUSPEND_WM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: BEV_SUSPEND_BW
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: BEV_SUSPEND_BW_GROUP
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: BEV_SUSPEND_LOOKUP
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: BEV_SUSPEND_FILT_READ
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x10'
    structs:
    - fields:
      - name: rate_limit
        type: struct ev_token_bucket
      - name: rate_limit_cfg
        type: struct ev_token_bucket_cfg
      - name: read_suspended
        type: unsigned
      - name: write_suspended
        type: unsigned
      - name: pending_unsuspend_read
        type: unsigned
      - name: pending_unsuspend_write
        type: unsigned
      - name: total_read
        type: ev_uint64_t
      - name: total_written
        type: ev_uint64_t
      - name: n_members
        type: int
      - name: min_share
        type: ev_ssize_t
      - name: configured_min_share
        type: ev_ssize_t
      - name: master_refill_event
        type: struct event
      - name: weakrand_seed
        type: struct evutil_weakrand_state
      - name: '*lock'
        type: void
      item_type: struct
      name: bufferevent_rate_limit_group
      pos:
        line_end: 126
        line_start: 78
        source_file: /src/libevent/bufferevent-internal.h
    - fields:
      - name: (bufferevent_private)
        type: LIST_ENTRY
      - name: '*group'
        type: struct bufferevent_rate_limit_group
      - name: limit
        type: struct ev_token_bucket
      - name: '*cfg'
        type: struct ev_token_bucket_cfg
      - name: refill_bucket_event
        type: struct event
      item_type: struct
      name: bufferevent_rate_limit
      pos:
        line_end: 149
        line_start: 129
        source_file: /src/libevent/bufferevent-internal.h
    - fields:
      - name: bev
        type: struct bufferevent
      - name: '*read_watermarks_cb'
        type: struct evbuffer_cb_entry
      - name: own_lock
        type: unsigned
      - name: readcb_pending
        type: unsigned
      - name: writecb_pending
        type: unsigned
      - name: connecting
        type: unsigned
      - name: connection_refused
        type: unsigned
      - name: eventcb_pending
        type: short
      - name: read_suspended
        type: bufferevent_suspend_flags
      - name: write_suspended
        type: bufferevent_suspend_flags
      - name: errno_pending
        type: int
      - name: dns_error
        type: int
      - name: deferred
        type: struct event_callback
      - name: options
        type: enum bufferevent_options
      - name: refcnt
        type: int
      - name: '*lock'
        type: void
      - name: max_single_read
        type: ev_ssize_t
      - name: max_single_write
        type: ev_ssize_t
      - name: '*rate_limiting'
        type: struct bufferevent_rate_limit
      - name: conn_address
        type: "union {\n\t\tstruct sockaddr_in6 in6;\n\t\tstruct sockaddr_in in;\n\t}"
      - name: '*dns_request'
        type: struct evdns_getaddrinfo_request
      item_type: struct
      name: bufferevent_private
      pos:
        line_end: 232
        line_start: 153
        source_file: /src/libevent/bufferevent-internal.h
    - fields:
      - name: '*type'
        type: char
      - name: mem_offset
        type: off_t
      - name: (*enable)(struct bufferevent *, short)
        type: int
      - name: (*disable)(struct bufferevent *, short)
        type: int
      - name: (*unlink)(struct bufferevent *)
        type: void
      - name: (*destruct)(struct bufferevent *)
        type: void
      - name: (*adj_timeouts)(struct bufferevent *)
        type: int
      - name: (*flush)(struct bufferevent *, short, enum bufferevent_flush_mode)
        type: int
      - name: (*ctrl)(struct bufferevent *, enum bufferevent_ctrl_op, union bufferevent_ctrl_data
          *)
        type: int
      item_type: struct
      name: bufferevent_ops
      pos:
        line_end: 298
        line_start: 252
        source_file: /src/libevent/bufferevent-internal.h
    typedefs:
    - item_type: typedef
      name: bufferevent_suspend_flags
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/libevent/bufferevent-internal.h
      type: ev_uint16_t
    union:
    - fields:
      - name: '*ptr'
        type: void
      - name: fd
        type: evutil_socket_t
      item_type: union
      name: bufferevent_ctrl_data
      pos:
        line_end: 246
        line_start: 243
        source_file: /src/libevent/bufferevent-internal.h
- function_names:
  - FDI_HAS_READ
  - FDI_HAS_WRITE
  - FDI_HAS_EVENTS
  - FDI_TO_SYSEVENTS
  - evport_init
  - grow
  - check_evportop
  - check_event
  - reassociate
  - evport_dispatch
  - evport_add
  - evport_del
  - evport_dealloc
  source_file: /src/libevent/evport.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_EVENTS_PER_GETN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libevent/evport.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_EVENTS_PER_GETN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/evport.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: fdi_what
        type: short
      - name: pending_idx_plus_1
        type: int
      item_type: struct
      name: fd_info
      pos:
        line_end: 95
        line_start: 88
        source_file: /src/libevent/evport.c
    - fields:
      - name: ed_port
        type: int
      - name: ed_npending
        type: int
      - name: ed_maxevents
        type: int
      - name: '*ed_pending'
        type: int
      - name: '*ed_pevtlist'
        type: port_event_t
      item_type: struct
      name: evport_data
      pos:
        line_end: 114
        line_start: 103
        source_file: /src/libevent/evport.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/iocp-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: overlapped
        type: OVERLAPPED
      - name: cb
        type: iocp_callback
      item_type: struct
      name: event_overlapped
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/libevent/iocp-internal.h
    - fields:
      - name: AcceptEx
        type: AcceptExPtr
      - name: ConnectEx
        type: ConnectExPtr
      - name: GetAcceptExSockaddrs
        type: GetAcceptExSockaddrsPtr
      item_type: struct
      name: win32_extension_fns
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/libevent/iocp-internal.h
    - fields:
      - name: port
        type: HANDLE
      - name: lock
        type: CRITICAL_SECTION
      - name: n_threads
        type: short
      - name: shutdown
        type: short
      - name: ms
        type: long
      - name: '*threads'
        type: HANDLE
      - name: n_live_threads
        type: short
      - name: '*shutdownSemaphore'
        type: HANDLE
      item_type: struct
      name: event_iocp_port
      pos:
        line_end: 92
        line_start: 74
        source_file: /src/libevent/iocp-internal.h
    - fields:
      - name: cb
        type: iocp_callback
      item_type: struct
      name: event_overlapped
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/libevent/iocp-internal.h
    typedefs:
    - item_type: typedef
      name: (*iocp_callback)(struct event_overlapped *, ev_uintptr_t, ev_ssize_t,
        int success)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libevent/iocp-internal.h
      type: void
    - item_type: typedef
      name: (WINAPI *AcceptExPtr)(SOCKET, SOCKET, PVOID, DWORD, DWORD, DWORD, LPDWORD,
        LPOVERLAPPED)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/libevent/iocp-internal.h
      type: BOOL
    - item_type: typedef
      name: (WINAPI *ConnectExPtr)(SOCKET, const struct sockaddr *, int, PVOID, DWORD,
        LPDWORD, LPOVERLAPPED)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/iocp-internal.h
      type: BOOL
    - item_type: typedef
      name: (WINAPI *GetAcceptExSockaddrsPtr)(PVOID, DWORD, DWORD, DWORD, LPSOCKADDR
        *, LPINT, LPSOCKADDR *, LPINT)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/libevent/iocp-internal.h
      type: void
    union: []
- function_names:
  - evthread_set_id_callback
  - evthread_get_lock_callbacks
  - evthread_get_condition_callbacks
  - evthreadimpl_disable_lock_debugging_
  - evthread_set_lock_callbacks
  - evthread_set_condition_callbacks
  - debug_lock_alloc
  - debug_lock_free
  - evthread_debug_lock_mark_locked
  - debug_lock_lock
  - evthread_debug_lock_mark_unlocked
  - debug_lock_unlock
  - debug_cond_wait
  - evthread_enable_lock_debuging
  - evthread_enable_lock_debugging
  - evthread_is_debug_lock_held_
  - evthread_debug_get_real_lock_
  - evthread_setup_global_lock_
  - evthreadimpl_get_id_
  - evthreadimpl_lock_alloc_
  - evthreadimpl_lock_free_
  - evthreadimpl_lock_lock_
  - evthreadimpl_lock_unlock_
  - evthreadimpl_cond_alloc_
  - evthreadimpl_cond_free_
  - evthreadimpl_cond_signal_
  - evthreadimpl_cond_wait_
  - evthreadimpl_is_lock_debugging_enabled_
  - evthreadimpl_locking_enabled_
  source_file: /src/libevent/evthread.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GLOBAL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libevent/evthread.c
      type_or_value: static
    - item_type: preproc_def
      name: DEBUG_LOCK_SIG
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libevent/evthread.c
      type_or_value: '0xdeb0b10c'
    structs:
    - fields:
      - name: signature
        type: unsigned
      - name: locktype
        type: unsigned
      - name: held_by
        type: unsigned long
      - name: count
        type: int
      - name: '*lock'
        type: void
      item_type: struct
      name: debug_lock
      pos:
        line_end: 191
        line_start: 183
        source_file: /src/libevent/evthread.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/ipv6-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AF_INET6
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/ipv6-internal.h
      type_or_value: '3333'
    - item_type: preproc_def
      name: PF_INET6
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/ipv6-internal.h
      type_or_value: AF_INET6
    structs:
    - fields:
      - name: s6_addr[16]
        type: ev_uint8_t
      item_type: struct
      name: in6_addr
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/libevent/ipv6-internal.h
    - fields:
      - name: sin6_family
        type: sa_family_t
      - name: sin6_port
        type: ev_uint16_t
      - name: sin6_addr
        type: struct in6_addr
      item_type: struct
      name: sockaddr_in6
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/libevent/ipv6-internal.h
    typedefs:
    - item_type: typedef
      name: sa_family_t
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/ipv6-internal.h
      type: int
    union: []
- function_names: []
  source_file: /src/libevent/changelist-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EV_CHANGE_ADD
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/changelist-internal.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EV_CHANGE_DEL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/changelist-internal.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EV_CHANGE_SIGNAL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/changelist-internal.h
      type_or_value: EV_SIGNAL
    - item_type: preproc_def
      name: EV_CHANGE_PERSIST
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/changelist-internal.h
      type_or_value: EV_PERSIST
    - item_type: preproc_def
      name: EV_CHANGE_ET
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libevent/changelist-internal.h
      type_or_value: EV_ET
    - item_type: preproc_def
      name: EVENT_CHANGELIST_FDINFO_SIZE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libevent/changelist-internal.h
      type_or_value: sizeof(int)
    structs:
    - fields:
      - name: fd
        type: evutil_socket_t
      - name: old_events
        type: short
      - name: read_change
        type: ev_uint8_t
      - name: write_change
        type: ev_uint8_t
      - name: close_change
        type: ev_uint8_t
      item_type: struct
      name: event_change
      pos:
        line_end: 65
        line_start: 52
        source_file: /src/libevent/changelist-internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/sha1.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mbedtls_context_init
  - mbedtls_context_free
  - mbedtls_context_renegotiate
  - mbedtls_context_write
  - mbedtls_context_read
  - mbedtls_context_pending
  - mbedtls_context_handshake
  - mbedtls_get_error
  - mbedtls_clear_error
  - mbedtls_clear
  - mbedtls_set_ssl_noops
  - mbedtls_handshake_is_ok
  - mbedtls_is_want_read
  - mbedtls_is_want_write
  - be_mbedtls_get_fd
  - print_err
  - print_err
  - bio_bufferevent_read
  - bio_bufferevent_write
  - conn_closed
  - be_mbedtls_bio_set_fd
  - bufferevent_mbedtls_get_allow_dirty_shutdown
  - bufferevent_mbedtls_set_allow_dirty_shutdown
  - bufferevent_mbedtls_get_ssl
  - bufferevent_mbedtls_renegotiate
  - bufferevent_get_mbedtls_error
  - bufferevent_mbedtls_filter_new
  - bufferevent_mbedtls_socket_new
  - bufferevent_mbedtls_dyncontext_new
  - bufferevent_mbedtls_dyncontext_free
  source_file: /src/libevent/bufferevent_mbedtls.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ssl'
        type: mbedtls_dyncontext
      - name: net
        type: mbedtls_net_context
      item_type: struct
      name: mbedtls_context
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/libevent/bufferevent_mbedtls.c
    typedefs: []
    union: []
- function_names:
  - event_overlapped_init_
  - handle_entry
  - loop
  - event_iocp_port_associate_
  - get_extension_function
  - init_extension_functions
  - event_get_win32_extension_fns_
  - event_iocp_port_launch_
  - event_iocp_port_unlock_and_free_
  - event_iocp_notify_all
  - event_iocp_shutdown_
  - event_iocp_activate_overlapped_
  - event_base_get_iocp_
  source_file: /src/libevent/event_iocp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libevent/event_iocp.c
      type_or_value: '0x0403'
    - item_type: preproc_def
      name: NOTIFICATION_KEY
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/event_iocp.c
      type_or_value: ((ULONG_PTR)-1)
    - item_type: preproc_def
      name: WSAID_ACCEPTEX
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/libevent/event_iocp.c
      type_or_value: '{0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}'
    - item_type: preproc_def
      name: WSAID_CONNECTEX
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/libevent/event_iocp.c
      type_or_value: '{0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}'
    - item_type: preproc_def
      name: WSAID_GETACCEPTEXSOCKADDRS
      pos:
        line_end: 144
        line_start: 142
        source_file: /src/libevent/event_iocp.c
      type_or_value: '{0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}'
    - item_type: preproc_def
      name: N_CPUS_DEFAULT
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/libevent/event_iocp.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHAIN_SPACE_PTR
  - CHAIN_SPACE_LEN
  - CHAIN_PINNED
  - CHAIN_PINNED_R
  - PTR_NOT_FOUND
  - evbuffer_chain_new
  - evbuffer_chain_new_membuf
  - evbuffer_chain_free
  - evbuffer_free_all_chains
  - evbuffer_chains_all_empty
  - evbuffer_chains_all_empty
  - evbuffer_free_trailing_empty_chains
  - evbuffer_chain_insert
  - evbuffer_chain_insert_new
  - evbuffer_chain_pin_
  - evbuffer_chain_unpin_
  - evbuffer_chain_incref
  - evbuffer_new
  - evbuffer_set_flags
  - evbuffer_clear_flags
  - evbuffer_incref_
  - evbuffer_incref_and_lock_
  - evbuffer_defer_callbacks
  - evbuffer_enable_locking
  - evbuffer_set_parent_
  - evbuffer_run_callbacks
  - evbuffer_invoke_callbacks_
  - evbuffer_deferred_callback
  - evbuffer_remove_all_callbacks
  - evbuffer_decref_and_unlock_
  - evbuffer_free
  - evbuffer_set_max_read
  - evbuffer_get_max_read
  - evbuffer_lock
  - evbuffer_unlock
  - evbuffer_get_length
  - evbuffer_get_contiguous_space
  - evbuffer_add_iovec
  - evbuffer_reserve_space
  - advance_last_with_data
  - evbuffer_commit_space
  - HAS_PINNED_R
  - ZERO_CHAIN
  - PRESERVE_PINNED
  - RESTORE_PINNED
  - COPY_CHAIN
  - APPEND_CHAIN
  - APPEND_CHAIN_MULTICAST
  - PREPEND_CHAIN
  - evbuffer_add_buffer
  - evbuffer_add_buffer_reference
  - evbuffer_prepend_buffer
  - evbuffer_drain
  - evbuffer_remove
  - evbuffer_copyout
  - evbuffer_copyout_from
  - evbuffer_remove_buffer
  - evbuffer_pullup
  - evbuffer_readline
  - evbuffer_strchr
  - find_eol_char
  - evbuffer_find_eol_char
  - evbuffer_strspn
  - evbuffer_getchr
  - evbuffer_search_eol
  - evbuffer_readln
  - evbuffer_add
  - evbuffer_prepend
  - evbuffer_chain_align
  - evbuffer_chain_should_realign
  - evbuffer_expand_singlechain
  - evbuffer_expand_fast_
  - evbuffer_expand
  - evbuffer_read_setup_vecs_
  - get_n_bytes_readable_on_socket
  - evbuffer_read
  - evbuffer_write_iovec
  - evbuffer_write_sendfile
  - evbuffer_write_atmost
  - evbuffer_write
  - evbuffer_find
  - evbuffer_ptr_subtract
  - evbuffer_ptr_set
  - evbuffer_ptr_memcmp
  - evbuffer_search
  - evbuffer_search_range
  - evbuffer_peek
  - evbuffer_add_vprintf
  - va_copy
  - evbuffer_add_printf
  - evbuffer_add_reference
  - evbuffer_add_reference_with_offset
  - evbuffer_file_segment_new
  - get_page_size
  - evbuffer_file_segment_add_cleanup_cb
  - evbuffer_file_segment_free
  - evbuffer_add_file_segment
  - evbuffer_add_file
  - evbuffer_setcb
  - evbuffer_add_cb
  - evbuffer_remove_cb_entry
  - evbuffer_remove_cb
  - evbuffer_cb_set_flags
  - evbuffer_cb_clear_flags
  - evbuffer_freeze
  - evbuffer_unfreeze
  - evbuffer_cb_suspend
  - evbuffer_cb_unsuspend
  - evbuffer_get_callbacks_
  source_file: /src/libevent/buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAP_FAILED
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/buffer.c
      type_or_value: ((void *)-1)
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_LINUX
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_FREEBSD
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_MACOSX
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_SOLARIS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EVBUFFER_CB_USER_FLAGS
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libevent/buffer.c
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: EVBUFFER_CB_INTERNAL_FLAGS
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libevent/buffer.c
      type_or_value: '0xffff0000'
    - item_type: preproc_def
      name: EVBUFFER_CB_OBSOLETE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/buffer.c
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: EVBUFFER_MAX_READ_DEFAULT
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libevent/buffer.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: CHUNK_SZ
      pos:
        line_end: 1524
        line_start: 1523
        source_file: /src/libevent/buffer.c
      type_or_value: '128'
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX_AUTO_SIZE
      pos:
        line_end: 1751
        line_start: 1750
        source_file: /src/libevent/buffer.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_TO_COPY_IN_EXPAND
      pos:
        line_end: 1946
        line_start: 1945
        source_file: /src/libevent/buffer.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_TO_REALIGN_IN_EXPAND
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/libevent/buffer.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: DEFAULT_WRITE_IOVEC
      pos:
        line_end: 2208
        line_start: 2207
        source_file: /src/libevent/buffer.c
      type_or_value: '128'
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2211
        line_start: 2210
        source_file: /src/libevent/buffer.c
      type_or_value: UIO_MAXIOV
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2213
        line_start: 2212
        source_file: /src/libevent/buffer.c
      type_or_value: IOV_MAX
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2215
        line_start: 2214
        source_file: /src/libevent/buffer.c
      type_or_value: DEFAULT_WRITE_IOVEC
    - item_type: preproc_def
      name: IOV_TYPE
      pos:
        line_end: 2218
        line_start: 2217
        source_file: /src/libevent/buffer.c
      type_or_value: struct iovec
    - item_type: preproc_def
      name: IOV_PTR_FIELD
      pos:
        line_end: 2219
        line_start: 2218
        source_file: /src/libevent/buffer.c
      type_or_value: iov_base
    - item_type: preproc_def
      name: IOV_LEN_FIELD
      pos:
        line_end: 2220
        line_start: 2219
        source_file: /src/libevent/buffer.c
      type_or_value: iov_len
    - item_type: preproc_def
      name: IOV_LEN_TYPE
      pos:
        line_end: 2221
        line_start: 2220
        source_file: /src/libevent/buffer.c
      type_or_value: size_t
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2223
        line_start: 2222
        source_file: /src/libevent/buffer.c
      type_or_value: '16'
    - item_type: preproc_def
      name: IOV_TYPE
      pos:
        line_end: 2224
        line_start: 2223
        source_file: /src/libevent/buffer.c
      type_or_value: WSABUF
    - item_type: preproc_def
      name: IOV_PTR_FIELD
      pos:
        line_end: 2225
        line_start: 2224
        source_file: /src/libevent/buffer.c
      type_or_value: buf
    - item_type: preproc_def
      name: IOV_LEN_FIELD
      pos:
        line_end: 2226
        line_start: 2225
        source_file: /src/libevent/buffer.c
      type_or_value: len
    - item_type: preproc_def
      name: IOV_LEN_TYPE
      pos:
        line_end: 2227
        line_start: 2226
        source_file: /src/libevent/buffer.c
      type_or_value: unsigned long
    - item_type: preproc_def
      name: NUM_READ_IOVEC
      pos:
        line_end: 2230
        line_start: 2229
        source_file: /src/libevent/buffer.c
      type_or_value: '4'
    - item_type: preproc_def
      name: lseek
      pos:
        line_end: 3142
        line_start: 3141
        source_file: /src/libevent/buffer.c
      type_or_value: _lseeki64
    structs: []
    typedefs: []
    union: []
- function_names:
  - evthread_posix_lock_alloc
  - evthread_posix_lock_free
  - evthread_posix_lock
  - evthread_posix_unlock
  - evthread_posix_get_id
  - evthread_posix_cond_alloc
  - evthread_posix_cond_free
  - evthread_posix_cond_signal
  - evthread_posix_cond_wait
  - evthread_use_pthreads_with_flags
  - evthread_use_pthreads
  source_file: /src/libevent/evthread_pthread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: thr
        type: pthread_t
      item_type: union
      name: r
      pos:
        line_end: 98
        line_start: 91
        source_file: /src/libevent/evthread_pthread.c
- function_names:
  - print_err
  - print_err
  - bio_bufferevent_new
  - bio_bufferevent_free
  - bio_bufferevent_read
  - bio_bufferevent_write
  - bio_bufferevent_ctrl
  - bio_bufferevent_puts
  - BIO_s_bufferevent
  - BIO_new_bufferevent
  - conn_closed
  - init_bio_counts
  - decrement_buckets
  - SSL_init
  - SSL_context_free
  - SSL_handshake_is_ok
  - SSL_is_want_read
  - SSL_is_want_write
  - openssl_read
  - openssl_write
  - be_openssl_get_fd
  - be_openssl_bio_set_fd
  - SSL_pending_wrap
  - bufferevent_openssl_filter_new
  - bufferevent_openssl_socket_new
  - bufferevent_ssl_renegotiate
  - bufferevent_openssl_get_ssl
  - bufferevent_openssl_get_allow_dirty_shutdown
  - bufferevent_openssl_set_allow_dirty_shutdown
  - bufferevent_get_openssl_error
  source_file: /src/libevent/bufferevent_openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIO_TYPE_LIBEVENT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/bufferevent_openssl.c
      type_or_value: '57'
    structs: []
    typedefs: []
    union: []
- function_names:
  - event_enable_debug_logging
  - event_set_fatal_callback
  - event_exit
  - event_err
  - event_warn
  - event_sock_err
  - event_sock_warn
  - event_errx
  - event_warnx
  - event_msgx
  - event_debugx_
  - event_logv_
  - event_set_log_callback
  - event_log
  source_file: /src/libevent/log.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/log.c
      type_or_value: EVENT_DBG_ALL
    - item_type: preproc_def
      name: DEFAULT_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/log.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - arc4_init
  - arc4_addrandom
  - read_all
  - arc4_seed_win32
  - arc4_seed_getrandom
  - arc4_seed_sysctl_bsd
  - arc4_seed_proc_sys_kernel_random_uuid
  - arc4_seed_urandom_helper_
  - arc4_seed_urandom
  - arc4_seed
  - arc4_stir
  - arc4_stir_if_needed
  - arc4_getbyte
  - arc4_getword
  - arc4random_stir
  - arc4random_addrandom
  - ARC4RANDOM_UINT32::arc4random
  - arc4random_buf
  - arc4random_uniform
  source_file: /src/libevent/arc4random.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARC4RANDOM_UINT32
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/arc4random.c
      type_or_value: uint32_t
    - item_type: preproc_def
      name: ADD_ENTROPY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/arc4random.c
      type_or_value: '32'
    - item_type: preproc_def
      name: REKEY_BASE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/arc4random.c
      type_or_value: '(1024*1024) '
    - item_type: preproc_def
      name: getpid
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libevent/arc4random.c
      type_or_value: _getpid
    - item_type: preproc_def
      name: pid_t
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/arc4random.c
      type_or_value: int
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libevent/arc4random.c
      type_or_value: _O_RDONLY
    structs:
    - fields:
      - name: i
        type: unsigned char
      - name: j
        type: unsigned char
      - name: s[256]
        type: unsigned char
      item_type: struct
      name: arc4_stream
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/libevent/arc4random.c
    typedefs: []
    union: []
- function_names:
  - ev_token_bucket_decrement_read
  - ev_token_bucket_decrement_write
  source_file: /src/libevent/ratelim-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: read_limit
        type: ev_ssize_t
      - name: last_updated
        type: ev_uint32_t
      item_type: struct
      name: ev_token_bucket
      pos:
        line_end: 44
        line_start: 37
        source_file: /src/libevent/ratelim-internal.h
    - fields:
      - name: read_rate
        type: size_t
      - name: read_maximum
        type: size_t
      - name: write_rate
        type: size_t
      - name: write_maximum
        type: size_t
      - name: tick_timeout
        type: struct timeval
      - name: msec_per_tick
        type: unsigned
      item_type: struct
      name: ev_token_bucket_cfg
      pos:
        line_end: 63
        line_start: 47
        source_file: /src/libevent/ratelim-internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/defer-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*deferred_cb_fn)(struct event_callback *, void *)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/libevent/defer-internal.h
      type: void
    union: []
- function_names:
  - be_async_run_eventcb
  - be_async_trigger_nolock
  - fatal_error
  - upcast
  - upcast_connect
  - upcast_read
  - upcast_write
  - bev_async_del_write
  - bev_async_del_read
  - bev_async_add_write
  - bev_async_add_read
  - bev_async_consider_writing
  - bev_async_consider_reading
  - be_async_outbuf_callback
  - be_async_inbuf_callback
  - be_async_enable
  - be_async_disable
  - be_async_destruct
  - bev_async_set_wsa_error
  - be_async_flush
  - connect_complete
  - read_complete
  - write_complete
  - bufferevent_async_new_
  - bufferevent_async_set_connected_
  - bufferevent_async_can_connect_
  - bufferevent_async_connect_
  - be_async_ctrl
  source_file: /src/libevent/bufferevent_async.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SO_UPDATE_CONNECT_CONTEXT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/bufferevent_async.c
      type_or_value: '0x7010'
    structs:
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: connect_overlapped
        type: struct event_overlapped
      - name: read_overlapped
        type: struct event_overlapped
      - name: write_overlapped
        type: struct event_overlapped
      - name: read_in_progress
        type: size_t
      - name: write_in_progress
        type: size_t
      - name: ok
        type: unsigned
      - name: read_added
        type: unsigned
      - name: write_added
        type: unsigned
      item_type: struct
      name: bufferevent_async
      pos:
        line_end: 89
        line_start: 79
        source_file: /src/libevent/bufferevent_async.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/kqueue-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_debug_entry
  - eq_debug_entry
  - event_debug_note_setup_
  - event_debug_note_teardown_
  - event_debug_note_add_
  - event_debug_note_del_
  - event_debug_assert_is_setup_
  - event_debug_assert_not_added_
  - event_debug_assert_socket_nonblocking_
  - event_debug_note_setup_
  - event_debug_note_teardown_
  - event_debug_note_add_
  - event_debug_note_del_
  - event_debug_assert_is_setup_
  - event_debug_assert_not_added_
  - event_debug_assert_socket_nonblocking_
  - EVENT_BASE_ASSERT_LOCKED
  - gettime
  - event_base_gettimeofday_cached
  - clear_time_cache
  - update_time_cache
  - event_base_update_cache_time
  - event_callback_to_event
  - event_to_event_callback
  - event_init
  - event_base_new
  - event_config_is_avoided_method
  - event_is_method_disabled
  - event_base_get_features
  - event_enable_debug_mode
  - event_disable_debug_mode
  - event_base_new_with_config
  - event_base_start_iocp_
  - event_base_stop_iocp_
  - event_base_cancel_single_callback_
  - event_base_free_queues_
  - event_base_free_
  - event_base_free_nofinalize
  - event_base_free
  - nil_backend_del
  - event_reinit
  - event_gettime_monotonic
  - event_get_supported_methods
  - event_config_new
  - event_config_entry_free
  - event_config_free
  - event_config_set_flag
  - event_config_avoid_method
  - event_config_require_features
  - event_config_set_num_cpus_hint
  - event_config_set_max_dispatch_interval
  - event_priority_init
  - event_base_priority_init
  - event_base_get_npriorities
  - event_base_get_num_events
  - event_base_get_max_events
  - event_haveevents
  - event_signal_closure
  - COMMON_TIMEOUT_IDX
  - is_common_timeout
  - is_same_common_timeout
  - get_common_timeout_list
  - common_timeout_ok
  - common_timeout_schedule
  - common_timeout_callback
  - event_base_init_common_timeout
  - event_persist_closure
  - event_process_active_single_queue
  - event_process_active
  - event_dispatch
  - event_base_dispatch
  - event_base_get_method
  - event_base_get_signal_method
  - event_loopexit_cb
  - event_loopexit
  - event_base_loopexit
  - event_loopbreak
  - event_base_loopbreak
  - event_base_loopcontinue
  - event_base_got_break
  - event_base_got_exit
  - event_loop
  - event_base_loop
  - event_once_cb
  - event_once
  - event_base_once
  - event_assign
  - event_base_set
  - event_set
  - event_self_cbarg
  - event_base_get_running_event
  - event_new
  - event_free
  - event_debug_unassign
  - event_finalize_nolock_
  - event_finalize_impl_
  - event_finalize
  - event_free_finalize
  - event_callback_finalize_nolock_
  - event_callback_finalize_
  - event_callback_finalize_many_
  - event_priority_set
  - event_pending
  - event_initialized
  - event_get_assignment
  - event_get_struct_event_size
  - event_get_fd
  - event_get_base
  - event_get_events
  - event_get_callback
  - event_get_callback_arg
  - event_get_priority
  - event_add
  - evthread_notify_base_default
  - evthread_notify_base_eventfd
  - evthread_notify_base
  - event_remove_timer_nolock_
  - event_remove_timer
  - event_add_nolock_
  - event_del_
  - event_del
  - event_del_block
  - event_del_noblock
  - event_del_nolock_
  - event_active
  - event_active_nolock_
  - event_active_later_
  - event_active_later_nolock_
  - event_callback_activate_
  - event_callback_activate_nolock_
  - event_callback_activate_later_nolock_
  - event_callback_init_
  - event_callback_cancel_
  - event_callback_cancel_nolock_
  - event_deferred_cb_init_
  - event_deferred_cb_set_priority_
  - event_deferred_cb_cancel_
  - event_deferred_cb_schedule_
  - timeout_next
  - timeout_process
  - MAX
  - MAX_EVENT_COUNT
  - DECR_EVENT_COUNT
  - INCR_EVENT_COUNT
  - event_queue_remove_inserted
  - event_queue_remove_active
  - event_queue_remove_active_later
  - event_queue_remove_timeout
  - event_queue_reinsert_timeout
  - insert_common_timeout_inorder
  - event_queue_insert_inserted
  - event_queue_insert_active
  - event_queue_insert_active_later
  - event_queue_insert_timeout
  - event_queue_make_later_events_active
  - event_get_version
  - event_get_version_number
  - event_get_method
  - event_mm_malloc_
  - event_mm_calloc_
  - event_mm_strdup_
  - event_mm_realloc_
  - event_mm_free_
  - event_set_mem_functions
  - evthread_notify_drain_eventfd
  - evthread_notify_drain_default
  - evthread_make_base_notifiable
  - evthread_make_base_notifiable_nolock_
  - event_base_foreach_event_nolock_
  - dump_inserted_event_fn
  - dump_active_event_fn
  - event_base_foreach_event
  - event_base_dump_events
  - event_base_active_by_fd
  - event_base_active_by_signal
  - event_base_add_virtual_
  - event_base_del_virtual_
  - event_free_debug_globals_locks
  - event_free_debug_globals
  - event_free_evsig_globals
  - event_free_evutil_globals
  - event_free_globals
  - libevent_global_shutdown
  - event_global_setup_locks_
  - event_base_assert_ok_
  - event_base_assert_ok_nolock_
  source_file: /src/libevent/event.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: current_base
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libevent/event.c
      type_or_value: event_global_current_base_
    - item_type: preproc_def
      name: CLOCK_SYNC_INTERVAL
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/libevent/event.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: MICROSECONDS_MASK
      pos:
        line_end: 1434
        line_start: 1433
        source_file: /src/libevent/event.c
      type_or_value: COMMON_TIMEOUT_MICROSECONDS_MASK
    - item_type: preproc_def
      name: COMMON_TIMEOUT_IDX_MASK
      pos:
        line_end: 1435
        line_start: 1434
        source_file: /src/libevent/event.c
      type_or_value: '0x0ff00000'
    - item_type: preproc_def
      name: COMMON_TIMEOUT_IDX_SHIFT
      pos:
        line_end: 1436
        line_start: 1435
        source_file: /src/libevent/event.c
      type_or_value: '20'
    - item_type: preproc_def
      name: COMMON_TIMEOUT_MASK
      pos:
        line_end: 1437
        line_start: 1436
        source_file: /src/libevent/event.c
      type_or_value: '0xf0000000'
    - item_type: preproc_def
      name: COMMON_TIMEOUT_MAGIC
      pos:
        line_end: 1438
        line_start: 1437
        source_file: /src/libevent/event.c
      type_or_value: '0x50000000'
    - item_type: preproc_def
      name: MAX_COMMON_TIMEOUTS
      pos:
        line_end: 1526
        line_start: 1525
        source_file: /src/libevent/event.c
      type_or_value: '256'
    - item_type: preproc_def
      name: EVENT_FINALIZE_FREE_
      pos:
        line_end: 2320
        line_start: 2319
        source_file: /src/libevent/event.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_DEFERREDS_QUEUED
      pos:
        line_end: 3209
        line_start: 3208
        source_file: /src/libevent/event.c
      type_or_value: '32'
    structs:
    - fields:
      - name: (event_debug_entry)
        type: HT_ENTRY
      - name: '*ptr'
        type: struct event
      - name: added
        type: unsigned
      item_type: struct
      name: event_debug_entry
      pos:
        line_end: 188
        line_start: 184
        source_file: /src/libevent/event.c
    typedefs: []
    union: []
- function_names:
  - sigfd_cb
  - sigfd_free_sigevent
  - sigfd_add
  - sigfd_del
  - sigfd_init_
  source_file: /src/libevent/signalfd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - evrpc_init
  - evrpc_free
  - evrpc_add_hook
  - evrpc_remove_hook_internal
  - TAILQ_FOREACH
  - evrpc_remove_hook
  - evrpc_process_hooks
  - TAILQ_FOREACH
  - evrpc_construct_uri
  - evrpc_register_rpc
  - evrpc_unregister_rpc
  - evrpc_request_cb
  - evrpc_request_cb_closure
  - evrpc_reqstate_free_
  - evrpc_request_done
  - evrpc_get_request
  - evrpc_get_reply
  - evrpc_request_done_closure
  - evrpc_pool_new
  - evrpc_request_wrapper_free
  - evrpc_pool_free
  - evrpc_pool_add_connection
  - evrpc_pool_remove_connection
  - evrpc_pool_set_timeout
  - evrpc_pool_find_connection
  - evrpc_schedule_request
  - evrpc_schedule_request_closure
  - evrpc_pause_request
  - evrpc_resume_request
  - TAILQ_FOREACH
  - evrpc_make_request
  - evrpc_make_request_ctx
  - evrpc_reply_done
  - evrpc_reply_done_closure
  - evrpc_pool_schedule
  - evrpc_request_timeout
  - evrpc_meta_data_free
  - evrpc_hook_meta_new_
  - evrpc_hook_associate_meta_
  - evrpc_hook_context_free_
  - evrpc_hook_add_meta
  - evrpc_hook_find_meta
  - evrpc_hook_get_connection
  - evrpc_send_request_generic
  - evrpc_register_object
  - evrpc_register_generic
  - evrpc_request_get_pool
  - evrpc_request_set_pool
  - evrpc_request_set_cb
  source_file: /src/libevent/evrpc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bufferevent_socket_get_conn_address_
  - bufferevent_socket_set_conn_address_fd_
  - bufferevent_socket_set_conn_address_
  - bufferevent_socket_outbuf_cb
  - bufferevent_readcb
  - bufferevent_writecb
  - bufferevent_socket_new
  - bufferevent_connect_getaddrinfo_cb
  - bufferevent_socket_connect_hostname
  - bufferevent_socket_connect_hostname_hints
  - bufferevent_socket_get_dns_error
  - bufferevent_new
  - be_socket_enable
  - be_socket_disable
  - be_socket_destruct
  - be_socket_flush
  - be_socket_setfd
  - bufferevent_priority_set
  - bufferevent_base_set
  - be_socket_ctrl
  source_file: /src/libevent/bufferevent_sock.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/mbedtls-compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EPOLL_OP_TABLE_INDEX
  source_file: /src/libevent/epolltable-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: events
        type: int
      - name: op
        type: int
      item_type: struct
      name: operation
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/libevent/epolltable-internal.h
    typedefs: []
    union: []
- function_names:
  - close_epoll_handle
  - close_epoll_handle
  - epoll_init
  - change_to_string
  - epoll_op_to_string
  - PRINT_CHANGES
  - epoll_apply_one_change
  - epoll_apply_changes
  - epoll_nochangelist_add
  - epoll_nochangelist_del
  - epoll_dispatch
  - epoll_dealloc
  source_file: /src/libevent/epoll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPOLLET
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/epoll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EPOLLRDHUP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/epoll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/epoll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/epoll.c
      type_or_value: EV_FEATURE_EARLY_CLOSE
    - item_type: preproc_def
      name: INVALID_EPOLL_HANDLE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/epoll.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: INVALID_EPOLL_HANDLE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libevent/epoll.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: INITIAL_NEVENT
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libevent/epoll.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_NEVENT
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/epoll.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_EPOLL_TIMEOUT_MSEC
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libevent/epoll.c
      type_or_value: (35*60*1000)
    structs:
    - fields:
      - name: '*events'
        type: struct epoll_event
      - name: nevents
        type: int
      - name: epfd
        type: epoll_handle
      item_type: struct
      name: epollop
      pos:
        line_end: 110
        line_start: 103
        source_file: /src/libevent/epoll.c
    typedefs:
    - item_type: typedef
      name: epoll_handle
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/libevent/epoll.c
      type: HANDLE
    - item_type: typedef
      name: epoll_handle
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libevent/epoll.c
      type: int
    union: []
- function_names: []
  source_file: /src/libevent/evrpc-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVRPC_URI_PREFIX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: '"/.rpc."'
    - item_type: preproc_def
      name: input_hooks
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: common.in_hooks
    - item_type: preproc_def
      name: output_hooks
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: common.out_hooks
    - item_type: preproc_def
      name: paused_requests
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: common.pause_requests
    structs:
    - fields:
      - name: (evrpc_hook)
        type: TAILQ_ENTRY
      - name: "(*process)(void *, struct evhttp_request *,\n\t    struct evbuffer
          *, void *)"
        type: int
      - name: '*process_arg'
        type: void
      item_type: struct
      name: evrpc_hook
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: in_hooks
        type: struct evrpc_hook_list
      - name: out_hooks
        type: struct evrpc_hook_list
      - name: pause_requests
        type: struct evrpc_pause_list
      item_type: struct
      name: evrpc_hooks_
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: common
        type: struct evrpc_hooks_
      - name: '* http_server'
        type: struct evhttp
      item_type: struct
      name: evrpc_base
      pos:
        line_end: 79
        line_start: 71
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: common
        type: struct evrpc_hooks_
      - name: '*base'
        type: struct event_base
      - name: connections
        type: struct evconq
      - name: timeout
        type: int
      item_type: struct
      name: evrpc_pool
      pos:
        line_end: 95
        line_start: 85
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: (evrpc_hook_ctx)
        type: TAILQ_ENTRY
      - name: '*ctx'
        type: void
      - name: (*cb)(void *, enum EVRPC_HOOK_RESULT)
        type: void
      item_type: struct
      name: evrpc_hook_ctx
      pos:
        line_end: 102
        line_start: 97
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: (evrpc_meta)
        type: TAILQ_ENTRY
      - name: '*key'
        type: char
      - name: '*data'
        type: void
      - name: data_size
        type: size_t
      item_type: struct
      name: evrpc_meta
      pos:
        line_end: 110
        line_start: 104
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: meta_data
        type: struct evrpc_meta_list
      - name: '*evcon'
        type: struct evhttp_connection
      item_type: struct
      name: evrpc_hook_meta
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: '*hook_meta'
        type: struct evrpc_hook_meta
      - name: '*request'
        type: void
      - name: '*reply'
        type: void
      - name: '*rpc'
        type: struct evrpc
      - name: '* http_req'
        type: struct evhttp_request
      - name: '* rpc_data'
        type: struct evbuffer
      item_type: struct
      name: evrpc_req_generic
      pos:
        line_end: 160
        line_start: 132
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: '*hook_meta'
        type: struct evrpc_hook_meta
      - name: (evrpc_request_wrapper)
        type: TAILQ_ENTRY
      - name: '*pool'
        type: struct evrpc_pool
      - name: '*evcon'
        type: struct evhttp_connection
      - name: '*req'
        type: struct evhttp_request
      - name: ev_timeout
        type: struct event
      - name: '*name'
        type: char
      - name: (*cb)(struct evrpc_status*, void *request, void *reply, void *arg)
        type: void
      - name: '*cb_arg'
        type: void
      - name: '*request'
        type: void
      - name: '*reply'
        type: void
      - name: (*request_marshal)(struct evbuffer *, void *)
        type: void
      - name: (*reply_clear)(void *)
        type: void
      - name: (*reply_unmarshal)(void *, struct evbuffer*)
        type: int
      item_type: struct
      name: evrpc_request_wrapper
      pos:
        line_end: 202
        line_start: 163
        source_file: /src/libevent/evrpc-internal.h
    typedefs: []
    union: []
- function_names:
  - EVBUFFER_CHAIN_EXTRA
  - ASSERT_EVBUFFER_LOCKED
  - EVBUFFER_LOCK
  - EVBUFFER_UNLOCK
  - EVBUFFER_LOCK2
  - EVBUFFER_UNLOCK2
  - WSABUF_FROM_EVBUFFER_IOV
  source_file: /src/libevent/evbuffer-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVBUFFER_CB_NODEFER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MIN_BUFFER_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MIN_BUFFER_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: ((size_t)EV_SSIZE_MAX)
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: EV_SIZE_MAX
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: ((size_t)EV_SSIZE_MAX)
    - item_type: preproc_def
      name: EVBUFFER_FILESEGMENT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: EVBUFFER_SENDFILE
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: "0x0002\t"
    - item_type: preproc_def
      name: EVBUFFER_REFERENCE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: "0x0004\t"
    - item_type: preproc_def
      name: EVBUFFER_IMMUTABLE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: "0x0008\t"
    - item_type: preproc_def
      name: EVBUFFER_MEM_PINNED_R
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EVBUFFER_MEM_PINNED_W
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: EVBUFFER_MEM_PINNED_ANY
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: (EVBUFFER_MEM_PINNED_R|EVBUFFER_MEM_PINNED_W)
    - item_type: preproc_def
      name: EVBUFFER_DANGLING
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: EVBUFFER_MULTICAST
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_SIZE
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: sizeof(struct evbuffer_chain)
    structs:
    - fields:
      - name: (evbuffer_cb_entry)
        type: LIST_ENTRY
      - name: cb
        type: "union {\n\t\tevbuffer_cb_func cb_func;\n\t\tevbuffer_cb cb_obsolete;\n\t}"
      - name: '*cbarg'
        type: void
      - name: flags
        type: ev_uint32_t
      item_type: struct
      name: evbuffer_cb_entry
      pos:
        line_end: 75
        line_start: 61
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*first'
        type: struct evbuffer_chain
      - name: '*last'
        type: struct evbuffer_chain
      - name: '**last_with_datap'
        type: struct evbuffer_chain
      - name: total_len
        type: size_t
      - name: max_read
        type: size_t
      - name: n_add_for_cb
        type: size_t
      - name: n_del_for_cb
        type: size_t
      - name: own_lock
        type: unsigned
      - name: freeze_start
        type: unsigned
      - name: freeze_end
        type: unsigned
      - name: deferred_cbs
        type: unsigned
      - name: flags
        type: ev_uint32_t
      - name: '*cb_queue'
        type: struct event_base
      - name: refcnt
        type: int
      - name: deferred
        type: struct event_callback
      - name: '*parent'
        type: struct bufferevent
      item_type: struct
      name: evbuffer
      pos:
        line_end: 157
        line_start: 79
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*next'
        type: struct evbuffer_chain
      - name: buffer_len
        type: size_t
      - name: misalign
        type: ev_misalign_t
      - name: 'off'
        type: size_t
      - name: flags
        type: unsigned
      - name: refcnt
        type: int
      - name: '*buffer'
        type: unsigned char
      item_type: struct
      name: evbuffer_chain
      pos:
        line_end: 215
        line_start: 172
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: cleanupfn
        type: evbuffer_ref_cleanup_cb
      - name: '*extra'
        type: void
      item_type: struct
      name: evbuffer_chain_reference
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*segment'
        type: struct evbuffer_file_segment
      item_type: struct
      name: evbuffer_chain_file_segment
      pos:
        line_end: 233
        line_start: 227
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*lock'
        type: void
      - name: refcnt
        type: int
      - name: flags
        type: unsigned
      - name: can_sendfile
        type: unsigned
      - name: is_mapping
        type: unsigned
      - name: fd
        type: int
      - name: '*mapping'
        type: void
      - name: '*contents'
        type: char
      - name: file_offset
        type: ev_off_t
      - name: mmap_offset
        type: ev_off_t
      - name: length
        type: ev_off_t
      - name: cleanup_cb
        type: evbuffer_file_segment_cleanup_cb
      - name: '*cleanup_cb_arg'
        type: void
      item_type: struct
      name: evbuffer_file_segment
      pos:
        line_end: 267
        line_start: 236
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*source'
        type: struct evbuffer
      - name: '*parent'
        type: struct evbuffer_chain
      item_type: struct
      name: evbuffer_multicast_parent
      pos:
        line_end: 276
        line_start: 271
        source_file: /src/libevent/evbuffer-internal.h
    typedefs:
    - item_type: typedef
      name: ev_misalign_t
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libevent/evbuffer-internal.h
      type: ev_ssize_t
    - item_type: typedef
      name: ev_misalign_t
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/libevent/evbuffer-internal.h
      type: ev_off_t
    union: []
- function_names:
  - evthread_win32_lock_create
  - evthread_win32_lock_free
  - evthread_win32_lock
  - evthread_win32_unlock
  - evthread_win32_get_id
  - evthread_win32_condvar_init
  - LOAD
  - evthread_win32_condvar_alloc
  - evthread_win32_condvar_free
  - evthread_win32_condvar_signal
  - evthread_win32_condvar_wait
  - evthread_win32_cond_alloc
  - evthread_win32_cond_free
  - evthread_win32_cond_signal
  - evthread_win32_cond_wait
  - evthread_use_windows_threads
  source_file: /src/libevent/evthread_win32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/evthread_win32.c
      type_or_value: '0x0403'
    - item_type: preproc_def
      name: SPIN_COUNT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/evthread_win32.c
      type_or_value: '2000'
    structs:
    - fields:
      - name: event
        type: HANDLE
      - name: lock
        type: CRITICAL_SECTION
      - name: n_waiting
        type: int
      - name: n_to_wake
        type: int
      - name: generation
        type: int
      item_type: struct
      name: evthread_win32_cond
      pos:
        line_end: 189
        line_start: 182
        source_file: /src/libevent/evthread_win32.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/time-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: adjust_monotonic_clock
        type: struct timeval
      - name: last_time
        type: struct timeval
      item_type: struct
      name: evutil_monotonic_timer
      pos:
        line_end: 87
        line_start: 63
        source_file: /src/libevent/time-internal.h
    typedefs:
    - item_type: typedef
      name: (WINAPI *ev_GetTickCount_func)(void)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/libevent/time-internal.h
      type: ULONGLONG
    union: []
- function_names: []
  source_file: /src/libevent/evdns-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - evutil_gettimeofday
  - U64_LITERAL
  - U64_LITERAL
  - evutil_tv_to_msec_
  - evutil_usleep_
  - evutil_date_rfc1123
  - adjust_monotonic_time
  - evutil_monotonic_timer_new
  - evutil_monotonic_timer_free
  - evutil_configure_monotonic_time
  - evutil_gettime_monotonic
  - evutil_configure_monotonic_time_
  - evutil_gettime_monotonic_
  - evutil_configure_monotonic_time_
  - evutil_gettime_monotonic_
  - evutil_GetTickCount_
  - evutil_configure_monotonic_time_
  - abs64
  - evutil_gettime_monotonic_
  - evutil_configure_monotonic_time_
  - evutil_gettime_monotonic_
  source_file: /src/libevent/evutil_time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPOCH_BIAS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(116444736000000000)
    - item_type: preproc_def
      name: UNITS_PER_SEC
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(10000000)
    - item_type: preproc_def
      name: USEC_PER_SEC
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(1000000)
    - item_type: preproc_def
      name: UNITS_PER_USEC
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(10)
    - item_type: preproc_def
      name: MAX_SECONDS_IN_MSEC_LONG
      pos:
        line_end: 125
        line_start: 123
        source_file: /src/libevent/evutil_time.c
      type_or_value: (((LONG_MAX) - 999) / 1000)
    structs: []
    typedefs:
    - item_type: typedef
      name: (WINAPI *GetSystemTimePreciseAsFileTime_fn_t) (LPFILETIME)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libevent/evutil_time.c
      type: void
    union:
    - fields:
      - name: ft_ft
        type: FILETIME
      - name: ft_64
        type: ev_uint64_t
      item_type: union
      name: ft
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/libevent/evutil_time.c
- function_names:
  - upcast
  - downcast
  - be_underlying_writebuf_full
  - be_readbuf_full
  - be_null_filter
  - bufferevent_filter_new
  - be_filter_unlink
  - be_filter_destruct
  - be_filter_enable
  - be_filter_disable
  - be_filter_process_input
  - be_filter_process_output
  - bufferevent_filtered_outbuf_cb
  - be_filter_read_nolock_
  - bufferevent_filtered_inbuf_cb
  - be_filter_readcb
  - be_filter_writecb
  - be_filter_eventcb
  - be_filter_flush
  - be_filter_ctrl
  source_file: /src/libevent/bufferevent_filter.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: '*underlying'
        type: struct bufferevent
      - name: '*inbuf_cb'
        type: struct evbuffer_cb_entry
      - name: '*outbuf_cb'
        type: struct evbuffer_cb_entry
      - name: got_eof
        type: unsigned
      - name: (*free_context)(void *)
        type: void
      - name: process_in
        type: bufferevent_filter_cb
      - name: process_out
        type: bufferevent_filter_cb
      - name: '*context'
        type: void
      item_type: struct
      name: bufferevent_filtered
      pos:
        line_end: 100
        line_start: 79
        source_file: /src/libevent/bufferevent_filter.c
    typedefs: []
    union: []
- function_names:
  - ev_token_bucket_init_
  - ev_token_bucket_update_
  - bufferevent_update_buckets
  - ev_token_bucket_get_tick_
  - ev_token_bucket_cfg_new
  - ev_token_bucket_cfg_free
  - LOCK_GROUP
  - UNLOCK_GROUP
  - bufferevent_get_rlim_max_
  - LIM
  - GROUP_SUSPENDED
  - CLAMPTO
  - bufferevent_get_read_max_
  - bufferevent_get_write_max_
  - bufferevent_decrement_read_buckets_
  - bufferevent_decrement_write_buckets_
  - bev_group_suspend_reading_
  - bev_group_suspend_writing_
  - bev_refill_callback_
  - bev_group_random_element_
  - FOREACH_RANDOM_ORDER
  - bev_group_unsuspend_reading_
  - bev_group_unsuspend_writing_
  - bev_group_refill_callback_
  - bufferevent_set_rate_limit
  - bufferevent_rate_limit_group_new
  - bufferevent_rate_limit_group_set_cfg
  - bufferevent_rate_limit_group_set_min_share
  - bufferevent_rate_limit_group_free
  - bufferevent_add_to_rate_limit_group
  - bufferevent_remove_from_rate_limit_group
  - bufferevent_remove_from_rate_limit_group_internal_
  - bufferevent_get_read_limit
  - bufferevent_get_write_limit
  - bufferevent_set_max_single_read
  - bufferevent_set_max_single_write
  - bufferevent_get_max_single_read
  - bufferevent_get_max_single_write
  - bufferevent_get_max_to_read
  - bufferevent_get_max_to_write
  - bufferevent_get_token_bucket_cfg
  - bufferevent_rate_limit_group_get_read_limit
  - bufferevent_rate_limit_group_get_write_limit
  - bufferevent_decrement_read_limit
  - bufferevent_decrement_write_limit
  - bufferevent_rate_limit_group_decrement_read
  - bufferevent_rate_limit_group_decrement_write
  - bufferevent_rate_limit_group_get_totals
  - bufferevent_rate_limit_group_reset_totals
  - bufferevent_ratelim_init_
  source_file: /src/libevent/bufferevent_ratelim.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SINGLE_READ_DEFAULT
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/bufferevent_ratelim.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_SINGLE_WRITE_DEFAULT
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libevent/bufferevent_ratelim.c
      type_or_value: '16384'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rol
  - blk0
  - blk0
  - blk
  - R0
  - R1
  - R2
  - R3
  - R4
  - SHA1Transform
  - SHA1Init
  - SHA1Update
  - SHA1Final
  - builtin_SHA1
  source_file: /src/libevent/sha1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state[5]
        type: uint32_t
      - name: count[2]
        type: uint32_t
      - name: buffer[64]
        type: unsigned char
      item_type: struct
      name: SHA1_CTX
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libevent/sha1.c
    typedefs: []
    union:
    - fields:
      - name: c[64]
        type: unsigned char
      - name: l[16]
        type: uint32_t
      item_type: union
      name: CHAR64LONG16
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/libevent/sha1.c
- function_names:
  - evtag_init
  - ENCODE_INT_INTERNAL
  - encode_int64_internal
  - evtag_encode_int
  - evtag_encode_int64
  - evtag_encode_tag
  - decode_tag_internal
  - evtag_decode_tag
  - evtag_marshal
  - evtag_marshal_buffer
  - evtag_marshal_int
  - evtag_marshal_int64
  - evtag_marshal_string
  - evtag_marshal_timeval
  - DECODE_INT_INTERNAL
  - decode_int64_internal
  - evtag_decode_int
  - evtag_decode_int64
  - evtag_peek
  - evtag_peek_length
  - evtag_payload_length
  - evtag_unmarshal_header
  - evtag_consume
  - evtag_unmarshal
  - evtag_unmarshal_int
  - evtag_unmarshal_int64
  - evtag_unmarshal_fixed
  - evtag_unmarshal_string
  - evtag_unmarshal_timeval
  source_file: /src/libevent/event_tagging.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/strlcpy-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: strlcpy
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/libevent/strlcpy-internal.h
      type_or_value: event_strlcpy_
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVUTIL_HAS_ATTRIBUTE
  - EVUTIL_NIL_CONDITION_
  - EVUTIL_ERR_IS_EAGAIN
  - EVUTIL_ERR_IS_EAGAIN
  - EVUTIL_ERR_RW_RETRIABLE
  - EVUTIL_ERR_CONNECT_RETRIABLE
  - EVUTIL_ERR_ACCEPT_RETRIABLE
  - EVUTIL_ERR_CONNECT_REFUSED
  - EVUTIL_ERR_IS_EAGAIN
  - EVUTIL_ERR_RW_RETRIABLE
  - EVUTIL_ERR_CONNECT_RETRIABLE
  - EVUTIL_ERR_ACCEPT_RETRIABLE
  - EVUTIL_ERR_CONNECT_REFUSED
  - EVUTIL_ASSERT_LIST_OK
  - EVUTIL_ASSERT_TAILQ_OK
  - EVUTIL_UPCAST
  - EVUTIL_UNLIKELY
  - EVUTIL_UNLIKELY
  - EVUTIL_ASSERT
  - EVUTIL_FAILURE_CHECK
  - EVUTIL_ASSERT
  - EVUTIL_FAILURE_CHECK
  - EV_I64_ARG
  - EV_U64_ARG
  - EV_I64_ARG
  - EV_U64_ARG
  - EV_SOCK_ARG
  - EV_SOCK_ARG
  - EV_SIZE_ARG
  - EV_SSIZE_ARG
  - EV_SIZE_ARG
  - EV_SSIZE_ARG
  - EV_SIZE_ARG
  - EV_SSIZE_ARG
  source_file: /src/libevent/util-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVUTIL_HAS_ATTRIBUTE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/util-internal.h
      type_or_value: __has_attribute
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/util-internal.h
      type_or_value: EVENT__inline
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libevent/util-internal.h
      type_or_value: __func__
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libevent/util-internal.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libevent/util-internal.h
      type_or_value: __FILE__
    - item_type: preproc_def
      name: EVUTIL_NIL_STMT_
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libevent/util-internal.h
      type_or_value: ((void)0)
    - item_type: preproc_def
      name: EVUTIL_SHUT_RD
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/libevent/util-internal.h
      type_or_value: SHUT_RD
    - item_type: preproc_def
      name: EVUTIL_SHUT_RD
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libevent/util-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVUTIL_SHUT_WR
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/util-internal.h
      type_or_value: SHUT_WR
    - item_type: preproc_def
      name: EVUTIL_SHUT_WR
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libevent/util-internal.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: EVUTIL_SHUT_BOTH
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/util-internal.h
      type_or_value: SHUT_BOTH
    - item_type: preproc_def
      name: EVUTIL_SHUT_BOTH
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/util-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVUTIL_WEAKRAND_MAX
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_INT32_MAX
    - item_type: preproc_def
      name: EVUTIL_FALLTHROUGH
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/libevent/util-internal.h
      type_or_value: ; __attribute__((fallthrough))
    - item_type: preproc_def
      name: ss_family
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/libevent/util-internal.h
      type_or_value: ss_union.ss_sa.sa_family
    - item_type: preproc_def
      name: EVUTIL_EAI_NEED_RESOLVE
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/libevent/util-internal.h
      type_or_value: '-90002'
    - item_type: preproc_def
      name: EV_WINDOWS
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/libevent/util-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EV_WINDOWS
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/libevent/util-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EV_U64_FMT
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%I64u"'
    - item_type: preproc_def
      name: EV_I64_FMT
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%I64d"'
    - item_type: preproc_def
      name: EV_U64_FMT
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%llu"'
    - item_type: preproc_def
      name: EV_I64_FMT
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%lld"'
    - item_type: preproc_def
      name: EV_SOCK_FMT
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_I64_FMT
    - item_type: preproc_def
      name: EV_SOCK_FMT
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%d"'
    - item_type: preproc_def
      name: EV_SIZE_FMT
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%zu"'
    - item_type: preproc_def
      name: EV_SSIZE_FMT
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%zd"'
    - item_type: preproc_def
      name: EV_SIZE_FMT
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%lu"'
    - item_type: preproc_def
      name: EV_SSIZE_FMT
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%ld"'
    - item_type: preproc_def
      name: EV_SIZE_FMT
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_U64_FMT
    - item_type: preproc_def
      name: EV_SSIZE_FMT
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_I64_FMT
    - item_type: preproc_def
      name: EVUTIL_SOCK_NONBLOCK
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/libevent/util-internal.h
      type_or_value: SOCK_NONBLOCK
    - item_type: preproc_def
      name: EVUTIL_SOCK_NONBLOCK
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x4000000'
    - item_type: preproc_def
      name: EVUTIL_SOCK_CLOEXEC
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/libevent/util-internal.h
      type_or_value: SOCK_CLOEXEC
    - item_type: preproc_def
      name: EVUTIL_SOCK_CLOEXEC
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: EVUTIL_EFD_NONBLOCK
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/libevent/util-internal.h
      type_or_value: EFD_NONBLOCK
    - item_type: preproc_def
      name: EVUTIL_EFD_NONBLOCK
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: EVUTIL_EFD_CLOEXEC
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/libevent/util-internal.h
      type_or_value: EFD_CLOEXEC
    - item_type: preproc_def
      name: EVUTIL_EFD_CLOEXEC
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x8000'
    structs:
    - fields:
      - name: seed
        type: ev_uint32_t
      item_type: struct
      name: evutil_weakrand_state
      pos:
        line_end: 324
        line_start: 322
        source_file: /src/libevent/util-internal.h
    - fields:
      - name: ss_union
        type: "union {\n\t\tstruct sockaddr ss_sa;\n\t\tstruct sockaddr_in ss_sin;\n\t\tstruct
          sockaddr_in6 ss_sin6;\n\t\tchar ss_padding[128];\n\t}"
      item_type: struct
      name: sockaddr_storage
      pos:
        line_end: 398
        line_start: 391
        source_file: /src/libevent/util-internal.h
    typedefs:
    - item_type: typedef
      name: "* (*evdns_getaddrinfo_fn)(\n    struct evdns_base *base,\n    const char
        *nodename, const char *servname,\n    const struct evutil_addrinfo *hints_in,\n
        \   void (*cb)(int, struct evutil_addrinfo *, void *), void *arg)"
      pos:
        line_end: 413
        line_start: 409
        source_file: /src/libevent/util-internal.h
      type: evdns_getaddrinfo_request
    - item_type: typedef
      name: "(*evdns_getaddrinfo_cancel_fn)(\n    struct evdns_getaddrinfo_request
        *req)"
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/libevent/util-internal.h
      type: void
    union: []
- function_names:
  - bufferevent_ssl_upcast
  - bufferevent_ssl_put_error
  - start_reading
  - start_writing
  - bufferevent_ssl_stop_reading
  - bufferevent_ssl_stop_writing
  - set_rbow
  - set_wbor
  - clear_rbow
  - clear_wbor
  - do_read
  - do_write
  - bytes_to_read
  - consider_reading
  - consider_writing
  - be_ssl_readcb
  - be_ssl_writecb
  - be_ssl_eventcb
  - be_ssl_readeventcb
  - be_ssl_writeeventcb
  - be_ssl_auto_fd
  - set_open_callbacks
  - do_handshake
  - be_ssl_handshakecb
  - be_ssl_handshakeeventcb
  - set_handshake_callbacks
  - bufferevent_ssl_renegotiate_impl
  - be_ssl_outbuf_cb
  - be_ssl_enable
  - be_ssl_disable
  - be_ssl_unlink
  - be_ssl_destruct
  - be_ssl_adj_timeouts
  - be_ssl_flush
  - be_ssl_set_fd
  - be_ssl_ctrl
  - bufferevent_ssl_new_impl
  - bufferevent_get_ssl_error
  - bufferevent_ssl_get_flags
  - bufferevent_ssl_set_flags
  - bufferevent_ssl_clear_flags
  - bufferevent_ssl_get_allow_dirty_shutdown
  - bufferevent_ssl_set_allow_dirty_shutdown
  source_file: /src/libevent/bufferevent_ssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OP_MADE_PROGRESS
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OP_BLOCKED
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OP_ERR
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '4'
    - item_type: preproc_def
      name: WRITE_FRAME
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '15000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - poll_init
  - poll_check_ok
  - poll_dispatch
  - poll_add
  - poll_del
  - poll_dealloc
  source_file: /src/libevent/poll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLLRDHUP
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/poll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/poll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/poll.c
      type_or_value: EV_FEATURE_EARLY_CLOSE
    structs:
    - fields:
      - name: idxplus1
        type: int
      item_type: struct
      name: pollidx
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/libevent/poll.c
    - fields:
      - name: event_count
        type: int
      - name: nfds
        type: int
      - name: realloc_copy
        type: int
      - name: '*event_set'
        type: struct pollfd
      - name: '*event_set_copy'
        type: struct pollfd
      item_type: struct
      name: pollop
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libevent/poll.c
    typedefs: []
    union: []
- function_names:
  - evutil_secure_rng_set_urandom_device_file
  - evutil_secure_rng_init
  - evutil_secure_rng_global_setup_locks_
  - evutil_free_secure_rng_globals_locks
  - ev_arc4random_buf
  - ARC4_LOCK_
  - ARC4_UNLOCK_
  - evutil_secure_rng_global_setup_locks_
  - evutil_free_secure_rng_globals_locks
  - evutil_secure_rng_set_urandom_device_file
  - evutil_secure_rng_init
  - ev_arc4random_buf
  - evutil_secure_rng_get_bytes
  - evutil_secure_rng_add_bytes
  - evutil_free_secure_rng_globals_
  source_file: /src/libevent/evutil_rand.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ssize_t
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/evutil_rand.c
      type_or_value: EVENT__ssize_t
    - item_type: preproc_def
      name: ARC4RANDOM_EXPORT
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libevent/evutil_rand.c
      type_or_value: static
    - item_type: preproc_def
      name: ARC4RANDOM_UINT32
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/evutil_rand.c
      type_or_value: ev_uint32_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - HT_HEAD
  - HT_INITIALIZER
  - HT_ENTRY
  - HT_ENTRY
  - HT_EMPTY
  - HT_SIZE
  - HT_MEM_USAGE
  - HT_FIND
  - HT_INSERT
  - HT_REPLACE
  - HT_REMOVE
  - HT_START
  - HT_NEXT
  - HT_NEXT_RMV
  - HT_CLEAR
  - HT_INIT
  - ht_improve_hash_
  - ht_string_hash_
  - ht_string_hash_
  - HT_SET_HASH_
  - HT_SET_HASHVAL_
  - HT_ELT_HASH_
  - HT_SET_HASH_
  - HT_ELT_HASH_
  - HT_SET_HASHVAL_
  - HT_BUCKET_
  - HT_FOREACH
  - HT_PROTOTYPE
  - _HT_FIND_P_
  - _HT_FIND
  - _HT_INSERT
  - _HT_REPLACE
  - _HT_REMOVE
  - _HT_FOREACH_FN
  - _HT_START
  - _HT_NEXT
  - _HT_NEXT_RMV
  - HT_GENERATE
  - _HT_GROW
  - _HT_CLEAR
  - _HT_REP_IS_BAD_
  - HT_FIND_OR_INSERT_
  - HT_FOI_INSERT_
  source_file: /src/libevent/ht-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - devpoll_commit
  - devpoll_queue
  - devpoll_init
  - devpoll_dispatch
  - devpoll_add
  - devpoll_del
  - devpoll_dealloc
  source_file: /src/libevent/devpoll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/devpoll.c
      type_or_value: '32000'
    structs:
    - fields:
      - name: '*events'
        type: struct pollfd
      - name: nevents
        type: int
      - name: dpfd
        type: int
      - name: '*changes'
        type: struct pollfd
      - name: nchanges
        type: int
      item_type: struct
      name: devpollop
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/libevent/devpoll.c
    typedefs: []
    union: []
- function_names:
  - DIV_ROUNDUP
  - SELECT_ALLOC_SIZE
  - select_init
  - check_selectop
  - check_selectop
  - select_dispatch
  - select_resize
  - select_add
  - select_del
  - select_free_selectop
  - select_dealloc
  source_file: /src/libevent/select.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NFDBITS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/select.c
      type_or_value: (sizeof(fd_mask)*8)
    structs:
    - fields:
      - name: event_fds
        type: int
      - name: event_fdsz
        type: int
      - name: resize_out_sets
        type: int
      - name: '*event_readset_in'
        type: fd_set
      - name: '*event_writeset_in'
        type: fd_set
      - name: '*event_readset_out'
        type: fd_set
      - name: '*event_writeset_out'
        type: fd_set
      item_type: struct
      name: selectop
      pos:
        line_end: 85
        line_start: 77
        source_file: /src/libevent/select.c
    typedefs:
    - item_type: typedef
      name: fd_mask
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/libevent/select.c
      type: unsigned long
    union: []
- function_names:
  - EVSIGBASE_LOCK
  - EVSIGBASE_UNLOCK
  - evsig_set_base_
  - evsig_cb
  - evsig_init_
  - evsig_ensure_saved_
  - evsig_set_handler_
  - evsig_add
  - evsig_restore_handler_
  - evsig_del
  - evsig_handler
  - evsig_dealloc_
  - evsig_free_globals_locks
  - evsig_free_globals_
  - evsig_global_setup_locks_
  source_file: /src/libevent/signal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bufferevent_suspend_read_
  - bufferevent_unsuspend_read_
  - bufferevent_suspend_write_
  - bufferevent_unsuspend_write_
  - bufferevent_inbuf_wm_check
  - bufferevent_inbuf_wm_cb
  - bufferevent_run_deferred_callbacks_locked
  - bufferevent_run_deferred_callbacks_unlocked
  - UNLOCKED
  - SCHEDULE_DEFERRED
  - bufferevent_run_readcb_
  - bufferevent_run_writecb_
  - bufferevent_trigger
  - bufferevent_run_eventcb_
  - bufferevent_trigger_event
  - bufferevent_init_common_
  - bufferevent_setcb
  - bufferevent_getcb
  - bufferevent_get_input
  - bufferevent_get_output
  - bufferevent_get_base
  - bufferevent_get_priority
  - bufferevent_write
  - bufferevent_write_buffer
  - bufferevent_read
  - bufferevent_read_buffer
  - bufferevent_enable
  - bufferevent_set_timeouts
  - bufferevent_settimeout
  - bufferevent_disable_hard_
  - bufferevent_disable
  - bufferevent_setwatermark
  - bufferevent_getwatermark
  - bufferevent_flush
  - bufferevent_incref_and_lock_
  - bufferevent_transfer_lock_ownership_
  - bufferevent_decref_and_unlock_
  - bufferevent_finalize_cb_
  - bufferevent_decref
  - bufferevent_free
  - bufferevent_incref
  - bufferevent_enable_locking_
  - bufferevent_setfd
  - bufferevent_replacefd
  - bufferevent_getfd
  - bufferevent_get_options_
  - bufferevent_cancel_all_
  - bufferevent_get_enabled
  - bufferevent_get_underlying
  - bufferevent_generic_read_timeout_cb
  - bufferevent_generic_write_timeout_cb
  - bufferevent_init_generic_timeout_cbs_
  - bufferevent_generic_adj_timeouts_
  - bufferevent_generic_adj_existing_timeouts_
  - bufferevent_add_event_
  - bufferevent_lock
  - bufferevent_unlock
  source_file: /src/libevent/bufferevent.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BEV_TRIG_ALL_OPTS
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/libevent/bufferevent.c
      type_or_value: "(\t\t\t\\\n\t\tBEV_TRIG_IGNORE_WATERMARKS|\t\\\n\t\tBEV_TRIG_DEFER_CALLBACKS\t\\\n\t)"
    - item_type: preproc_def
      name: MAX_CBS
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/libevent/bufferevent.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - epoll_create
  - epoll_ctl
  - epoll_wait
  source_file: /src/libevent/epoll_sub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/ssl-compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_ERRORS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/ssl-compat.h
      type_or_value: '3'
    structs:
    - fields:
      - name: '*(*init)(void *ssl)'
        type: void
      - name: (*free)(void *ssl, int flags)
        type: void
      - name: (*free_raw)(void *ssl)
        type: void
      - name: (*renegotiate)(void *ssl)
        type: int
      - name: (*write)(void *ssl, const unsigned char *buf, size_t len)
        type: int
      - name: (*read)(void *ssl, unsigned char *buf, size_t len)
        type: int
      - name: (*pending)(void *ssl)
        type: size_t
      - name: (*handshake)(void *ssl)
        type: int
      - name: (*get_error)(void *ssl, int ret)
        type: int
      - name: (*clear_error)(void)
        type: void
      - name: (*clear)(void *ssl)
        type: int
      - name: (*set_connect_state)(void *ssl)
        type: void
      - name: (*set_accept_state)(void *ssl)
        type: void
      - name: (*handshake_is_ok)(int err)
        type: int
      - name: (*err_is_want_read)(int err)
        type: int
      - name: (*err_is_want_write)(int err)
        type: int
      - name: (*get_fd)(void *ssl)
        type: evutil_socket_t
      - name: (*bio_set_fd)(struct bufferevent_ssl *ssl, evutil_socket_t fd)
        type: int
      - name: (*init_bio_counts)(struct bufferevent_ssl *bev)
        type: void
      - name: (*decrement_buckets)(struct bufferevent_ssl *bev)
        type: void
      - name: "(*conn_closed)(\n\t\tstruct bufferevent_ssl *bev, int when, int errcode,
          int ret)"
        type: void
      - name: (*print_err)(int err)
        type: void
      item_type: struct
      name: le_ssl_ops
      pos:
        line_end: 32
        line_start: 8
        source_file: /src/libevent/ssl-compat.h
    - fields:
      - name: n_written
        type: unsigned long
      - name: n_read
        type: unsigned long
      item_type: struct
      name: bio_data_counts
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/libevent/ssl-compat.h
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: '*underlying'
        type: struct bufferevent
      - name: '*ssl'
        type: void
      - name: '*ssl_ops'
        type: struct le_ssl_ops
      - name: '*outbuf_cb'
        type: struct evbuffer_cb_entry
      - name: counts
        type: struct bio_data_counts
      - name: last_write
        type: ev_ssize_t
      - name: errors[NUM_ERRORS]
        type: ev_uint32_t
      - name: read_blocked_on_write
        type: unsigned
      - name: write_blocked_on_read
        type: unsigned
      - name: n_errors
        type: unsigned
      - name: state
        type: unsigned
      - name: old_state
        type: unsigned
      - name: flags
        type: ev_uint64_t
      item_type: struct
      name: bufferevent_ssl
      pos:
        line_end: 84
        line_start: 39
        source_file: /src/libevent/ssl-compat.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libevent/cmake/CheckFileOffsetBits.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024)
    - item_type: preproc_def
      name: MB
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024 * KB)
    - item_type: preproc_def
      name: GB
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024 * MB)
    - item_type: preproc_def
      name: TB
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024 * GB)
    structs: []
    typedefs: []
    union: []
- function_names:
  - timeout_thread_proc_
  - testcase_run_in_thread_
  - testcase_set_timeout_
  - testcase_reset_timeout_
  - testcase_run_bare_
  - testcase_run_forked_
  - tinytest_set_flag_
  - usage
  - process_test_alias
  - process_test_option
  - tinytest_set_aliases
  - tinytest_main
  - tinytest_get_verbosity_
  - tinytest_set_test_failed_
  - tinytest_set_test_skipped_
  - tinytest_format_hex_
  source_file: /src/libevent/test/tinytest.c
  types:
    enum:
    - enumerators:
      - name: SKIP
        value: '2'
      - name: OK
        value: '1'
      - name: FAIL
        value: '0'
      item_type: enum
      name: outcome
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libevent/test/tinytest.c
    preproc_defs:
    - item_type: preproc_def
      name: LONGEST_TEST_NAME
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/test/tinytest.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: DEFAULT_TESTCASE_TIMEOUT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/test/tinytest.c
      type_or_value: 30U
    - item_type: preproc_def
      name: MAGIC_EXITCODE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/test/tinytest.c
      type_or_value: '42'
    structs:
    - fields:
      - name: '*fn'
        type: testcase_fn
      - name: '*env'
        type: void
      item_type: struct
      name: timeout_thread_args
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/libevent/test/tinytest.c
    typedefs: []
    union: []
- function_names:
  - readcb
  - writecb
  - errorcb
  - test_bufferevent_impl
  - test_bufferevent
  - test_bufferevent_pair
  - test_bufferevent_flush_normal
  - test_bufferevent_flush_flush
  - test_bufferevent_flush_finished
  - test_bufferevent_pair_flush_normal
  - test_bufferevent_pair_flush_flush
  - test_bufferevent_pair_flush_finished
  - test_bufferevent_ratelimit_div_by_zero
  - test_bufferevent_ratelimit_overflow
  - lu_find
  - trace_lock_alloc
  - trace_lock_free
  - trace_lock_lock
  - trace_lock_unlock
  - lock_unlock_free_thread_cbs
  - use_lock_unlock_profiler
  - free_lock_unlock_profiler
  - test_bufferevent_pair_release_lock
  - wm_readcb
  - wm_writecb
  - wm_errorcb
  - test_bufferevent_watermarks_impl
  - test_bufferevent_watermarks
  - test_bufferevent_pair_watermarks
  - bufferevent_input_filter
  - bufferevent_output_filter
  - test_bufferevent_filters_impl
  - test_bufferevent_filters
  - test_bufferevent_pair_filters
  - test_bufferevent_filters_disable
  - test_bufferevent_pair_filters_disable
  - sender_writecb
  - sender_errorcb
  - listen_cb
  - fake_listener_create
  - reader_eventcb
  - reader_eventcb_simple
  - reader_readcb
  - test_bufferevent_connect
  - close_socket_cb
  - test_bufferevent_connect_fail_eventcb
  - want_fail_eventcb
  - test_bufferevent_connect_fail
  - bev_timeout_read_cb
  - bev_timeout_write_cb
  - bev_timeout_event_cb
  - test_bufferevent_timeouts
  - tt_assert_timeval_empty
  - trigger_failure_cb
  - trigger_eventcb
  - trigger_readcb_triggered
  - trigger_readcb
  - test_bufferevent_trigger
  - test_bufferevent_socket_filter_inactive
  - pair_flush_eventcb
  - test_bufferevent_pair_flush
  - bufferevent_filter_data_stuck_readcb
  - bufferevent_filter_data_stuck_inputcb
  - test_bufferevent_filter_data_stuck
  - read_failed_readcb
  - test_bufferevent_read_failed
  source_file: /src/libevent/test/regress_bufferevent.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_STR
      pos:
        line_end: 679
        line_start: 677
        source_file: /src/libevent/test/regress_bufferevent.c
      type_or_value: "\"Now is the time for all good events to signal for \" \\\n\t\"the
        good of their protocol\""
    - item_type: preproc_def
      name: TT_IOCP
      pos:
        line_end: 1533
        line_start: 1532
        source_file: /src/libevent/test/regress_bufferevent.c
      type_or_value: (TT_FORK|TT_NEED_BASE|TT_ENABLE_IOCP)
    - item_type: preproc_def
      name: TT_IOCP_LEGACY
      pos:
        line_end: 1534
        line_start: 1533
        source_file: /src/libevent/test/regress_bufferevent.c
      type_or_value: (TT_ISOLATED|TT_ENABLE_IOCP)
    structs:
    - fields:
      - name: '*lock'
        type: void
      - name: status
        type: "enum {\n\t\tALLOC, FREE,\n\t}"
      - name: locked
        type: size_t
      item_type: struct
      name: lock_wrapper
      pos:
        line_end: 270
        line_start: 263
        source_file: /src/libevent/test/regress_bufferevent.c
    - fields:
      - name: cbs
        type: struct evthread_lock_callbacks
      - name: '*locks'
        type: lock_wrapper
      - name: nr_locks
        type: size_t
      item_type: struct
      name: lock_unlock_base
      pos:
        line_end: 278
        line_start: 271
        source_file: /src/libevent/test/regress_bufferevent.c
    - fields:
      - name: read_timeout_at
        type: struct timeval
      - name: write_timeout_at
        type: struct timeval
      - name: last_wrote_at
        type: struct timeval
      - name: last_read_at
        type: struct timeval
      - name: n_read_timeouts
        type: int
      - name: n_write_timeouts
        type: int
      - name: total_calls
        type: int
      item_type: struct
      name: timeout_cb_result
      pos:
        line_end: 986
        line_start: 978
        source_file: /src/libevent/test/regress_bufferevent.c
    - fields:
      - name: header_size
        type: size_t
      - name: total_read
        type: size_t
      item_type: struct
      name: bufferevent_filter_data_stuck
      pos:
        line_end: 1303
        line_start: 1300
        source_file: /src/libevent/test/regress_bufferevent.c
    typedefs: []
    union: []
- function_names:
  - read_cb
  - run_once
  - main
  source_file: /src/libevent/test/bench.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - zlib_deflate_free
  - zlib_inflate_free
  - getstate
  - zlib_input_filter
  - zlib_output_filter
  - readcb
  - writecb
  - errorcb
  - test_bufferevent_zlib
  source_file: /src/libevent/test/regress_zlib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _LARGEFILE64_SOURCE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: '0'
    - item_type: preproc_def
      name: _LFS64_LARGEFILE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: '0'
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: '0'
    - item_type: preproc_def
      name: off64_t
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: ev_int64_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_perror
  - server_read_cb
  - server_event_cb
  - listener_accept_cb
  - start_loop
  - client_read_cb
  - client_event_cb
  - start_client
  - main
  source_file: /src/libevent/test/test-fdleak.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_REQUESTS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libevent/test/test-fdleak.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: MAX_REQUESTS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/test/test-fdleak.c
      type_or_value: '4000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libevent/test/test-init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TT_DECLARE
  - TT_GRIPE
  - TT_BLATHER
  - TT_DIE
  - TT_FAIL
  - tt_abort_printf
  - tt_abort_perror
  - tt_abort_msg
  - tt_abort
  - tt_failprint_f
  - tt_fail_perror
  - tt_fail_msg
  - tt_fail
  - tt_skip
  - tt_want_
  - tt_want_msg
  - tt_assert_msg
  - tt_want
  - tt_assert
  - tt_assert_test_fmt_type
  - tt_assert_test_type
  - tt_assert_test_type_opt
  - tt_assert_op_type
  - tt_int_op
  - tt_fd_op
  - tt_uint_op
  - tt_ptr_op
  - tt_nstr_op
  - tt_str_op
  - tt_mem_op
  - tt_want_int_op
  - tt_want_uint_op
  - tt_want_ptr_op
  - tt_want_str_op
  source_file: /src/libevent/test/tinytest_macros.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TT_STMT_BEGIN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/test/tinytest_macros.h
      type_or_value: do {
    - item_type: preproc_def
      name: TT_STMT_END
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libevent/test/tinytest_macros.h
      type_or_value: '} while (0)'
    - item_type: preproc_def
      name: TT_EXIT_TEST_FUNCTION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/test/tinytest_macros.h
      type_or_value: TT_STMT_BEGIN goto end; TT_STMT_END
    structs: []
    typedefs: []
    union: []
- function_names:
  - count_init
  - count_free
  - count_incr
  - count_wait_for
  - dummy_cb
  - pair_is_in
  - test_iocp_port
  - read_complete
  - write_complete
  - test_iocp_evbuffer
  - async_readcb
  - test_iocp_bufferevent_async
  source_file: /src/libevent/test/regress_iocp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CALLS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/test/regress_iocp.c
      type_or_value: '16'
    structs:
    - fields:
      - name: eo
        type: struct event_overlapped
      - name: '*lock'
        type: void
      - name: call_count
        type: int
      - name: keys[MAX_CALLS]
        type: uintptr_t
      - name: sizes[MAX_CALLS]
        type: ev_ssize_t
      item_type: struct
      name: dummy_overlapped
      pos:
        line_end: 118
        line_start: 112
        source_file: /src/libevent/test/regress_iocp.c
    typedefs: []
    union: []
- function_names:
  - prepare_callback_1
  - prepare_callback_2
  - check_callback_1
  - check_callback_2
  - timeout_callback
  - test_callback_ordering
  - prepare_callback_3
  - test_timeout_unavailable
  - bad_malloc
  - test_malloc_failure
  source_file: /src/libevent/test/regress_watch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - trigger_timer
  - init_test
  - cleanup_test
  - set_timer_tv
  - set_timer
  - remaining
  - test_with_flags
  - timer_timeout_test
  source_file: /src/libevent/test/regress_timer_timeout.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*eb'
        type: struct event_base
      - name: '*e'
        type: struct event
      - name: tv_tmo
        type: struct timeval
      item_type: struct
      name: EventTimeoutTest
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/libevent/test/regress_timer_timeout.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/test/tinytest_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/libevent/test/tinytest_local.h
      type_or_value: evutil_snprintf
    structs: []
    typedefs: []
    union: []
- function_names:
  - write
  - read
  - simple_read_cb
  - basic_read_cb
  - dummy_read_cb
  - simple_write_cb
  - multiple_write_cb
  - multiple_read_cb
  - timeout_cb
  - combined_read_cb
  - combined_write_cb
  - setup_test
  - cleanup_test
  - test_simpleread
  - test_simplewrite
  - simpleread_multiple_cb
  - test_simpleread_multiple
  - simpleclose_close_fd_cb
  - record_event_cb
  - test_simpleclose_rw
  - test_simpleclose
  - test_multiple
  - test_persistent
  - test_combined
  - test_simpletimeout
  - periodic_timeout_cb
  - test_persistent_timeout
  - test_persistent_timeout_jump
  - activate_cb
  - persist_active_timeout_cb
  - test_persistent_active_timeout
  - common_timeout_cb
  - test_common_timeout
  - fork_signal_cb
  - simple_child_read_cb
  - test_fork
  - signal_cb_sa
  - signal_cb
  - signal_alarm_fallback
  - test_simple_signal_impl
  - test_simple_signal
  - test_simple_signal_re_order
  - signal_cb_free_event
  - test_signal_free_in_callback
  - test_multiplesignal
  - test_immediatesignal
  - test_signal_timeout
  - test_signal_dealloc
  - test_signal_pipeloss
  - test_signal_switchbase
  - test_signal_assert
  - test_signal_restore
  - signal_cb_swp
  - timeout_cb_swp
  - test_signal_while_processing
  - del_wait_thread
  - del_wait_cb
  - test_del_wait
  - null_cb
  - test_del_notify_thread
  - test_del_notify
  - test_free_active_base
  - test_manipulate_active_events
  - event_selfarg_cb
  - test_event_new_selfarg
  - test_event_assign_selfarg
  - test_event_base_get_num_events
  - test_event_base_get_max_events
  - test_bad_assign
  - bad_reentrant_run_loop_cb
  - test_bad_reentrant
  - write_a_byte_cb
  - read_and_drain_cb
  - activate_other_event_cb
  - test_active_later
  - incr_arg_cb
  - remove_timers_cb
  - send_a_byte_cb
  - read_not_timeout_cb
  - test_event_remove_timeout
  - test_event_timeout_lost_cb
  - test_event_timeout_lost
  - event_base_dispatch_threadcb
  - test_del_timeout_notify
  - test_event_base_new
  - test_loopexit
  - test_loopexit_multiple
  - break_cb
  - fail_cb
  - test_loopbreak
  - re_add_read_cb
  - test_nonpersist_readd
  - test_priorities_cb
  - test_priorities_impl
  - test_priorities
  - prio_active_inversion_cb
  - test_priority_active_inversion
  - test_multiple_cb
  - test_multiple_events_for_same_fd
  - read_once_cb
  - test_want_only_once
  - evtag_int_test
  - evtag_fuzz
  - evtag_tag_encoding
  - evtag_test_peek
  - test_methods
  - test_version
  - test_base_features
  - setenv
  - unsetenv
  - methodname_to_envvar
  - test_base_environ
  - read_called_once_cb
  - timeout_called_once_cb
  - immediate_called_twice_cb
  - test_event_once
  - test_event_once_never
  - test_event_pending
  - dfd_cb
  - test_event_closed_fd_poll
  - test_dup_fd
  - test_mm_functions
  - check_dummy_mem_ok
  - dummy_malloc
  - dummy_realloc
  - dummy_free
  - test_mm_functions
  - many_event_cb
  - test_many_events
  - test_struct_event_size
  - test_get_assignment
  - foreach_count_cb
  - foreach_find_cb
  - test_event_foreach
  - cache_time_cb
  - test_gettimeofday_cached
  - tabf_cb
  - test_evmap_invalid_slots
  - test_active_by_fd
  source_file: /src/libevent/test/regress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST1
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libevent/test/regress.c
      type_or_value: '"this is a test"'
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/libevent/test/regress.c
      type_or_value: AF_INET
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/libevent/test/regress.c
      type_or_value: AF_UNIX
    - item_type: preproc_def
      name: current_base
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/libevent/test/regress.c
      type_or_value: event_global_current_base_
    - item_type: preproc_def
      name: TEST_FORK_EXIT_SUCCESS
      pos:
        line_end: 903
        line_start: 902
        source_file: /src/libevent/test/regress.c
      type_or_value: '76'
    - item_type: preproc_def
      name: TEST_MAX_INT
      pos:
        line_end: 2605
        line_start: 2604
        source_file: /src/libevent/test/regress.c
      type_or_value: '6'
    - item_type: preproc_def
      name: MANY
      pos:
        line_end: 3274
        line_start: 3273
        source_file: /src/libevent/test/regress.c
      type_or_value: '70'
    - item_type: preproc_def
      name: RETRY_ON_DARWIN
      pos:
        line_end: 3791
        line_start: 3790
        source_file: /src/libevent/test/regress.c
      type_or_value: TT_RETRIABLE
    - item_type: preproc_def
      name: RETRY_ON_DARWIN
      pos:
        line_end: 3793
        line_start: 3792
        source_file: /src/libevent/test/regress.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*eb'
        type: struct event_base
      - name: '*ev'
        type: struct event
      - name: callcount
        type: unsigned int
      item_type: struct
      name: basic_cb_args
      pos:
        line_end: 103
        line_start: 98
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: ev
        type: struct event
      - name: nread
        type: int
      item_type: struct
      name: both
      pos:
        line_end: 239
        line_start: 236
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: n
        type: int
      - name: events[16]
        type: short
      - name: tvs[16]
        type: struct timeval
      item_type: struct
      name: persist_active_timeout_called
      pos:
        line_end: 696
        line_start: 692
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: ev
        type: struct event
      - name: called_at
        type: struct timeval
      - name: which
        type: int
      - name: count
        type: int
      item_type: struct
      name: common_timeout_info
      pos:
        line_end: 764
        line_start: 759
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: '**ev'
        type: struct event
      - name: events
        type: int
      - name: count
        type: int
      item_type: struct
      name: read_not_timeout_param
      pos:
        line_end: 2011
        line_start: 2006
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: ev
        type: struct event
      - name: count
        type: int
      item_type: struct
      name: test_pri_event
      pos:
        line_end: 2382
        line_start: 2379
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: count
        type: int
      - name: '*ev'
        type: struct event
      item_type: struct
      name: foreach_helper
      pos:
        line_end: 3369
        line_start: 3366
        source_file: /src/libevent/test/regress.c
    typedefs: []
    union: []
- function_names:
  - http_setup
  - rpc_setup
  - rpc_teardown
  - rpc_postrequest_failure
  - rpc_basic_test
  - rpc_postrequest_done
  - rpc_basic_message
  - rpc_pool_with_connection
  - GotKillCb
  - GotKillCbTwo
  - rpc_hook_add_header
  - rpc_hook_add_meta
  - rpc_hook_remove_header
  - rpc_basic_client
  - rpc_basic_queued_client
  - GotErrorCb
  - rpc_hook_pause_cb
  - rpc_hook_pause
  - rpc_basic_client_with_pause
  - rpc_client_timeout
  - rpc_test
  - rpc_invalid_type
  - RPC_LEGACY
  - RPC_LEGACY
  source_file: /src/libevent/test/regress_rpc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*vbase'
        type: void
      - name: '*ctx'
        type: void
      item_type: struct
      name: rpc_hook_ctx_
      pos:
        line_end: 600
        line_start: 597
        source_file: /src/libevent/test/regress_rpc.c
    typedefs: []
    union: []
- function_names:
  - rand_int
  - time_cb
  - main
  source_file: /src/libevent/test/test-time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/test/test-time.c
      type_or_value: '20000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - timeval_msec_diff
  - dnslogcb
  - regress_make_tmpfile
  - regress_fork
  - ignore_log_cb
  - move_pthread_to_realtime_scheduling_class
  - thread_setup
  - thread_setup
  - basic_test_setup
  - basic_test_cleanup
  - legacy_test_setup
  - run_legacy_test_fn
  - legacy_test_cleanup
  - main
  source_file: /src/libevent/test/regress_main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - run_once
  - main
  source_file: /src/libevent/test/bench_cascade.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_getkey
  - ssl_getcert
  - get_ssl_ctx
  - init_ssl
  - ssl_test_setup
  - ssl_test_cleanup
  - bio_rwcount_new
  - bio_rwcount_free
  - bio_rwcount_read
  - bio_rwcount_write
  - bio_rwcount_ctrl
  - bio_rwcount_puts
  - BIO_s_rwcount
  - BIO_new_rwcount
  - BIO_setup
  source_file: /src/libevent/test/regress_openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TESTCASES_NAME
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: openssl_testcases
    - item_type: preproc_def
      name: bufferevent_ssl_get_ssl
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_get_ssl
    - item_type: preproc_def
      name: bufferevent_ssl_set_allow_dirty_shutdown
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_set_allow_dirty_shutdown
    - item_type: preproc_def
      name: bufferevent_ssl_socket_new
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_socket_new
    - item_type: preproc_def
      name: bufferevent_ssl_filter_new
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_filter_new
    - item_type: preproc_def
      name: BIO_TYPE_LIBEVENT_RWCOUNT
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: '0xff1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - closed_cb
  - main
  source_file: /src/libevent/test/test-closed.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/test/regress_testutils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*q'
        type: char
      - name: '*anstype'
        type: char
      - name: '*ans'
        type: char
      - name: seen
        type: int
      - name: lower
        type: int
      item_type: struct
      name: regress_dns_server_table
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/libevent/test/regress_testutils.h
    typedefs: []
    union: []
- function_names:
  - readcb
  - errorcb
  - frob_socket
  - launch_request
  - main
  source_file: /src/libevent/test/bench_httpclient.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I64_FMT
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: '"%I64d"'
    - item_type: preproc_def
      name: I64_TYP
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: __int64
    - item_type: preproc_def
      name: I64_FMT
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: '"%lld"'
    - item_type: preproc_def
      name: I64_TYP
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: long long int
    structs:
    - fields:
      - name: n_read
        type: size_t
      - name: started
        type: struct timeval
      item_type: struct
      name: request_info
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/libevent/test/bench_httpclient.c
    typedefs: []
    union: []
- function_names:
  - MIN
  - loud_writecb
  - discard_readcb
  - write_on_connectedcb
  - echo_readcb
  - echo_writecb
  - echo_eventcb
  - echo_listenercb
  - check_bucket_levels_cb
  - B
  - check_group_bucket_levels_cb
  - group_drain_cb
  - timer_bias_cb
  - timer_bias_calculate
  - test_ratelimiting
  - handle_option
  - usage
  - main
  source_file: /src/libevent/test/test-ratelim.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMER_MAX_COST_USEC
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/test/test-ratelim.c
      type_or_value: '10'
    structs:
    - fields:
      - name: queued
        type: size_t
      - name: received
        type: ev_uint64_t
      item_type: struct
      name: client_state
      pos:
        line_end: 88
        line_start: 84
        source_file: /src/libevent/test/test-ratelim.c
    - fields:
      - name: '*name'
        type: char
      - name: '*ptr'
        type: int
      - name: min
        type: int
      - name: isbool
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 560
        line_start: 558
        source_file: /src/libevent/test/test-ratelim.c
    typedefs: []
    union: []
- function_names:
  - tinytest_skip
  source_file: /src/libevent/test/tinytest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TT_FORK
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: TT_SKIP
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: TT_ENABLED_
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: TT_OFF_BY_DEFAULT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: TT_RETRIABLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: TT_FIRST_USER_FLAG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: END_OF_TESTCASES
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/test/tinytest.h
      type_or_value: '{ NULL, NULL, 0, NULL, NULL }'
    - item_type: preproc_def
      name: END_OF_GROUPS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/test/tinytest.h
      type_or_value: '{ NULL, NULL}'
    - item_type: preproc_def
      name: END_OF_ALIASES
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/test/tinytest.h
      type_or_value: '{ NULL, NULL }'
    structs:
    - fields:
      - name: '*(*setup_fn)(const struct testcase_t *)'
        type: void
      - name: (*cleanup_fn)(const struct testcase_t *, void *)
        type: int
      item_type: struct
      name: testcase_setup_t
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/libevent/test/tinytest.h
    - fields:
      - name: '*name'
        type: char
      - name: fn
        type: testcase_fn
      - name: flags
        type: unsigned long
      - name: '*setup'
        type: struct testcase_setup_t
      - name: '*setup_data'
        type: void
      item_type: struct
      name: testcase_t
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/libevent/test/tinytest.h
    - fields:
      - name: '*prefix'
        type: char
      - name: '*cases'
        type: struct testcase_t
      item_type: struct
      name: testgroup_t
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/libevent/test/tinytest.h
    - fields:
      - name: '*name'
        type: char
      - name: '**tests'
        type: char
      item_type: struct
      name: testlist_alias_t
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/libevent/test/tinytest.h
    typedefs:
    - item_type: typedef
      name: (*testcase_fn)(void *)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/libevent/test/tinytest.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/test/regress_http.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - regress_get_socket_port
  - regress_get_udp_dnsserver
  - regress_get_tcp_dnsserver
  - regress_clean_dnsserver
  - strtolower
  - regress_dns_server_cb
  - regress_dnsserver
  - regress_get_listener_addr
  - parse_csv_address_list
  source_file: /src/libevent/test/regress_testutils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - evbuffer_validate_
  - evbuffer_get_waste
  - evbuffer_validate
  - test_evbuffer
  - no_cleanup
  - test_evbuffer_remove_buffer_with_empty
  - test_evbuffer_remove_buffer_with_empty2
  - test_evbuffer_remove_buffer_with_empty3
  - test_evbuffer_pullup_with_empty
  - test_evbuffer_remove_buffer_with_empty_front
  - test_evbuffer_remove_buffer_adjust_last_with_datap_with_empty
  - test_evbuffer_add_buffer_with_empty
  - test_evbuffer_add_buffer_with_empty2
  - test_evbuffer_reserve2
  - test_evbuffer_reserve_many
  - test_evbuffer_reserve_with_empty
  - test_evbuffer_reserve_invalid_last_with_datap
  - test_evbuffer_expand
  - test_evbuffer_expand_overflow
  - test_evbuffer_add1
  - test_evbuffer_add2
  - reference_cb
  - test_evbuffer_reference
  - test_evbuffer_reference2
  - addfile_test_writecb
  - addfile_test_readcb
  - test_evbuffer_add_file_leak1
  - test_evbuffer_add_file
  - file_segment_cleanup_cp
  - test_evbuffer_file_segment_add_cleanup_cb
  - failing_malloc
  - test_evbuffer_readln
  - tt_line_eq
  - test_evbuffer_search_eol
  - test_evbuffer_iterative
  - test_evbuffer_find
  - test_evbuffer_ptr_set
  - test_evbuffer_search
  - log_change_callback
  - self_draining_callback
  - test_evbuffer_callbacks
  - ref_done_cb
  - test_evbuffer_add_reference
  - ref_done_cb_with_offset
  - test_evbuffer_add_reference_with_offset
  - test_evbuffer_multicast
  - test_evbuffer_multicast_drain
  - check_prepend
  - test_evbuffer_prepend
  - test_evbuffer_empty_reference_prepend
  - test_evbuffer_empty_reference_prepend_buffer
  - test_evbuffer_peek_first_gt
  - test_evbuffer_peek
  - tt_iov_eq
  - test_evbuffer_freeze
  - FREEZE_EQ
  - test_evbuffer_add_iovec
  - test_evbuffer_copyout
  - setup_passthrough
  - cleanup_passthrough
  source_file: /src/libevent/test/regress_buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVBUFFER_INITIAL_LENGTH
      pos:
        line_end: 1784
        line_start: 1783
        source_file: /src/libevent/test/regress_buffer.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - E
  - main
  source_file: /src/libevent/test/print-winsock-errors.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/libevent/test/test-weof.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - start_cpu_usage_timer
  - filetime_to_100nsec
  - filetime_diff
  - get_cpu_usage
  - write_cb
  - timeout_cb
  - main
  source_file: /src/libevent/test/test-changelist.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: timeBegin
        type: struct timeval
      item_type: struct
      name: cpu_usage_timer
      pos:
        line_end: 62
        line_start: 53
        source_file: /src/libevent/test/test-changelist.c
    typedefs: []
    union: []
- function_names:
  - base_supports_et
  - read_cb
  - test_edgetriggered
  - test_edgetriggered_mix_error
  - read_notification_cb
  - write_notification_cb
  - test_edge_triggered_multiple_events
  source_file: /src/libevent/test/regress_et.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - htonll
  - ntohll
  - on_ws_msg_cb
  - on_ws_close_cb
  - http_on_ws_cb
  - http_ws_errorcb
  - receive_ws_msg
  - send_ws_msg
  - http_ws_readcb_phase2
  - http_ws_readcb_hdr
  - http_ws_readcb_bad
  - http_ws_test_with_connection
  - http_ws_test
  source_file: /src/libevent/test/regress_ws.c
  types:
    enum:
    - enumerators:
      - name: WS_FIN
        value: 1 << 7
      - name: WS_TEXT
        value: 1 << 0
      - name: WS_BINARY
        value: 1 << 1
      item_type: enum
      name: WSOptions
      pos:
        line_end: 209
        line_start: 205
        source_file: /src/libevent/test/regress_ws.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - http_basic_cb
  - http_ref_cb
  - main
  source_file: /src/libevent/test/bench_http.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - THREAD_RETURN
  - THREAD_SELF
  - THREAD_START
  - THREAD_JOIN
  - THREAD_RETURN
  - THREAD_SELF
  - THREAD_START
  - THREAD_JOIN
  source_file: /src/libevent/test/regress_thread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREAD_T
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: 'void * '
    - item_type: preproc_def
      name: THREAD_FN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: unsigned __stdcall
    - item_type: preproc_def
      name: THREAD_T
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: pthread_t
    - item_type: preproc_def
      name: THREAD_FN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: void *
    structs: []
    typedefs: []
    union: []
- function_names:
  - bufferevent_ssl_check_fd
  - bufferevent_ssl_check_freed
  - free_on_cb
  - respond_to_number
  - done_writing_cb
  - eventcb
  - open_ssl_bufevs
  - regress_bufferevent_openssl
  - acceptcb_deferred
  - acceptcb
  - regress_bufferevent_openssl_connect
  - wm_transfer
  - wm_eventcb
  - wm_acceptcb
  - regress_bufferevent_openssl_wm
  source_file: /src/libevent/test/regress_ssl.c
  types:
    enum:
    - enumerators:
      - name: REGRESS_OPENSSL_SOCKETPAIR
        value: '1'
      - name: REGRESS_OPENSSL_FILTER
        value: '2'
      - name: REGRESS_OPENSSL_OPEN
        value: '8'
      - name: REGRESS_OPENSSL_RENEGOTIATE
        value: '4'
      - name: REGRESS_OPENSSL_DIRTY_SHUTDOWN
        value: '16'
      - name: REGRESS_OPENSSL_FD
        value: '32'
      - name: REGRESS_OPENSSL_CLIENT
        value: '64'
      - name: REGRESS_OPENSSL_SERVER
        value: '128'
      - name: REGRESS_OPENSSL_FREED
        value: '256'
      - name: REGRESS_OPENSSL_TIMEOUT
        value: '512'
      - name: REGRESS_OPENSSL_CLIENT_WRITE
        value: '2048'
      - name: REGRESS_OPENSSL_SLEEP
        value: '1024'
      - name: REGRESS_OPENSSL_BATCH_WRITE
        value: '8192'
      - name: REGRESS_DEFERRED_CALLBACKS
        value: '4096'
      item_type: enum
      name: regress_openssl_type
      pos:
        line_end: 135
        line_start: 112
        source_file: /src/libevent/test/regress_ssl.c
    preproc_defs:
    - item_type: preproc_def
      name: read
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/test/regress_ssl.c
      type_or_value: _read
    - item_type: preproc_def
      name: write
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/test/regress_ssl.c
      type_or_value: _write
    structs:
    - fields:
      - name: fd
        type: evutil_socket_t
      - name: read
        type: size_t
      - name: write
        type: size_t
      item_type: struct
      name: rwcount
      pos:
        line_end: 496
        line_start: 491
        source_file: /src/libevent/test/regress_ssl.c
    - fields:
      - name: server
        type: int
      - name: flags
        type: int
      - name: '*data'
        type: struct evbuffer
      - name: to_read
        type: size_t
      - name: wm_high
        type: size_t
      - name: limit
        type: size_t
      - name: get
        type: size_t
      - name: '*bev'
        type: struct bufferevent
      - name: '*neighbour'
        type: struct wm_context
      item_type: struct
      name: wm_context
      pos:
        line_end: 577
        line_start: 566
        source_file: /src/libevent/test/regress_ssl.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/test/regress_ws.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sock_perror
  - callback1
  - callback2
  - main
  source_file: /src/libevent/test/test-dumpevents.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N_EVENTS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/test/test-dumpevents.c
      type_or_value: '13'
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libevent/test/test-dumpevents.c
      type_or_value: AF_INET
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libevent/test/test-dumpevents.c
      type_or_value: AF_UNIX
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - trigger_kq
  - notify_cb
  - write_cb
  - exit_cb
  - main
  source_file: /src/libevent/test/test-kq-collision.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAGIC_FD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/test/test-kq-collision.c
      type_or_value: 42 // The old magic number used by kqueue EVFILT_USER
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_weakrand
  - BASIC
  - LEGACY
  - test_ai_eq
  - test_timeval_diff_leq
  - test_timeval_diff_eq
  source_file: /src/libevent/test/regress.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TT_NEED_SOCKETPAIR
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libevent/test/regress.h
      type_or_value: TT_FIRST_USER_FLAG
    - item_type: preproc_def
      name: TT_NEED_BASE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<1)
    - item_type: preproc_def
      name: TT_NEED_DNS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<2)
    - item_type: preproc_def
      name: TT_LEGACY
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<3)
    - item_type: preproc_def
      name: TT_NEED_THREADS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<4)
    - item_type: preproc_def
      name: TT_NO_LOGS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<5)
    - item_type: preproc_def
      name: TT_ENABLE_IOCP_FLAG
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<6)
    - item_type: preproc_def
      name: TT_ENABLE_IOCP
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_ENABLE_IOCP_FLAG|TT_NEED_THREADS)
    - item_type: preproc_def
      name: TT_ENABLE_DEBUG_MODE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<7)
    - item_type: preproc_def
      name: TT_ENABLE_PRIORITY_INHERITANCE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<8)
    - item_type: preproc_def
      name: TT_ISOLATED
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libevent/test/regress.h
      type_or_value: TT_FORK|TT_NEED_SOCKETPAIR|TT_NEED_BASE
    structs:
    - fields:
      - name: '*base'
        type: struct event_base
      - name: pair[2]
        type: evutil_socket_t
      - name: (*legacy_test_fn)(void)
        type: void
      - name: '*setup_data'
        type: void
      item_type: struct
      name: basic_test_data
      pos:
        line_end: 82
        line_start: 75
        source_file: /src/libevent/test/regress.h
    typedefs: []
    union: []
- function_names:
  - wake_all_timeout
  - wake_one_timeout
  - basic_thread
  - sigchld_cb
  - notify_fd_cb
  - wait_for_condition
  - thread_conditions_simple
  - SLEEP_MS
  - deferred_callback
  - load_deferred_queue
  - timer_callback
  - start_threads_callback
  - thread_deferred_cb_skew
  - note_time_cb
  - register_events_subthread
  - thread_no_events
  - TEST
  source_file: /src/libevent/test/regress_thread.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_THREADS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '100'
    - item_type: preproc_def
      name: NUM_ITERATIONS
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '100'
    - item_type: preproc_def
      name: NUM_THREADS
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CB_COUNT
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '128'
    - item_type: preproc_def
      name: QUEUE_THREAD_COUNT
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*lock'
        type: void
      - name: '*cond'
        type: void
      item_type: struct
      name: cond_wait
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/libevent/test/regress_thread.c
    - fields:
      - name: '*cond'
        type: struct cond_wait
      - name: delay
        type: struct timeval
      - name: alerted_at
        type: struct timeval
      - name: timed_out
        type: int
      item_type: struct
      name: alerted_record
      pos:
        line_end: 266
        line_start: 261
        source_file: /src/libevent/test/regress_thread.c
    - fields:
      - name: cbs[CB_COUNT]
        type: struct event_callback
      - name: '*queue'
        type: struct event_base
      item_type: struct
      name: deferred_test_data
      pos:
        line_end: 405
        line_start: 402
        source_file: /src/libevent/test/regress_thread.c
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - REPEAT_2
  - REPEAT_4
  - REPEAT_8
  - REPEAT_16
  - REPEAT_32
  - REPEAT_64
  - REPEAT_128
  - REPEAT_256
  - dns_gethostbyname_cb
  - dns_gethostbyname
  - dns_gethostbyname6
  - dns_gethostbyaddr
  - dns_resolve_reverse
  - dns_server_request_cb
  - dns_server_gethostbyname_cb
  - dns_server
  - generic_dns_callback
  - dns_search_test
  - dns_search_lower_test
  - search_cancel_server_cb
  - dns_search_cancel_test
  - fail_server_cb
  - dns_retry_test_impl
  - dns_retry_test
  - dns_retry_disable_when_inactive_test
  - dns_probe_settings_test
  - dns_reissue_test_impl
  - dns_reissue_test
  - dns_reissue_disable_when_inactive_test
  - dumb_bytes_fn
  - dns_inflight_test_impl
  - dns_inflight_test
  - dns_disable_when_inactive_test
  - dns_disable_when_inactive_no_ns_test
  - dns_initialize_nameservers_test
  - windows_dns_initialize_ipv6_nameservers_test
  - dns_initialize_inactive_one_nameserver_test
  - dns_initialize_inactive_two_nameservers_test
  - dns_nameservers_no_default_test
  - dns_nameservers_no_nameservers_configured_test
  - be_getaddrinfo_server_cb
  - nil_accept_cb
  - be_connect_hostname_event_cb
  - bev_connect_hostname
  - test_bufferevent_connect_hostname
  - gai_cb
  - cancel_gai_cb
  - test_getaddrinfo_async
  - gaic_cancel_request_cb
  - gaic_server_cb
  - gaic_getaddrinfo_cb
  - gaic_launch
  - cnt_malloc
  - cnt_realloc
  - cnt_free
  - testleak_setup
  - testleak_cleanup
  - test_dbg_leak_cancel
  - dbg_leak_resume
  - IMPL_DBG_LEAK_RESUME
  - test_dbg_leak_shutdown
  - test_getaddrinfo_async_cancel_stress
  - dns_client_fail_requests_test
  - getaddrinfo_cb
  - dns_client_fail_requests_getaddrinfo_test
  - race_base_run
  - race_busywait_run
  - race_gai_cb
  - getaddrinfo_race_gotresolve_test
  - test_tcp_resolve
  - test_tcp_resolve_pipeline
  - test_tcp_resolve_many_clients
  - test_tcp_timeout
  - test_tcp_notimpl
  - test_edns
  - test_set_so_rcvbuf_so_sndbuf
  - test_set_option
  - test_set_server_option
  - DNS_LEGACY
  source_file: /src/libevent/test/regress_dns.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOST_NAME_MAX_NAME
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '"1111111111111111111111111111111111111111111111111." '
    - item_type: preproc_def
      name: RESOLV_FILE
      pos:
        line_end: 1320
        line_start: 1319
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '"empty-resolv.conf"'
    - item_type: preproc_def
      name: GAIC_MAGIC
      pos:
        line_end: 2320
        line_start: 2319
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '0x1234abcd'
    - item_type: preproc_def
      name: SUCCESS
      pos:
        line_end: 3205
        line_start: 3204
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FAIL
      pos:
        line_end: 3206
        line_start: 3205
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: SUCCESS
      pos:
        line_end: 3281
        line_start: 3280
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FAIL
      pos:
        line_end: 3282
        line_start: 3281
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '-1'
    structs:
    - fields:
      - name: result
        type: int
      - name: type
        type: char
      - name: count
        type: int
      - name: ttl
        type: int
      - name: addrs_len
        type: size_t
      - name: '*addrs'
        type: void
      - name: addrs_buf[4096]
        type: char
      item_type: struct
      name: generic_dns_callback_result
      pos:
        line_end: 508
        line_start: 500
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: dnserr
        type: int
      - name: what
        type: int
      item_type: struct
      name: be_conn_hostname_result
      pos:
        line_end: 1551
        line_start: 1548
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: err
        type: int
      - name: '*ai'
        type: struct evutil_addrinfo
      item_type: struct
      name: gai_outcome
      pos:
        line_end: 1765
        line_start: 1762
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: magic
        type: int
      - name: '*base'
        type: struct event_base
      - name: '*dns_base'
        type: struct evdns_base
      - name: '*request'
        type: struct evdns_getaddrinfo_request
      - name: cancel_event
        type: struct event
      - name: canceled
        type: int
      item_type: struct
      name: gaic_request_status
      pos:
        line_end: 2317
        line_start: 2310
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: '*base'
        type: struct event_base
      - name: '*dns_base'
        type: struct evdns_base
      - name: '*req'
        type: struct evdns_request
      - name: r
        type: struct generic_dns_callback_result
      item_type: struct
      name: testleak_env_t
      pos:
        line_end: 2440
        line_start: 2435
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: '*lock'
        type: void
      - name: '*reqs_cmpl_cond'
        type: void
      - name: bw_threads
        type: int
      - name: '*bw_threads_exited_cond'
        type: void
      - name: stopping
        type: int
      - name: '*base'
        type: void
      - name: '*dns'
        type: void
      - name: locked
        type: int
      item_type: struct
      name: race_param
      pos:
        line_end: 2744
        line_start: 2733
        source_file: /src/libevent/test/regress_dns.c
    typedefs: []
    union: []
- function_names:
  - acceptcb
  - regress_pick_a_port
  - errorcb
  - regress_listener_error
  - acceptcb_free
  - regress_listener_close_accepted_fd
  - regress_listener_immediate_close
  - regress_listener_error_unlock
  - disable_thread
  - acceptcb_for_thread_test
  - regress_listener_disable_in_thread
  - errorcb_for_thread_test
  - acceptcb_for_thread_test_error
  - regress_listener_disable_in_thread_error
  - is_unicode_temp_path
  - empty_listener_cb
  - regress_listener_reuseport_on_unix_socket
  source_file: /src/libevent/test/regress_listener.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/test/regress_listener.c
      type_or_value: _unlink
    - item_type: preproc_def
      name: close
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_listener.c
      type_or_value: _close
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - ext_method_cb
  - http_bind
  - https_bev
  - https_mbedtls_bev
  - http_setup_gencb
  - http_setup
  - http_connect
  - evbuffer_datacmp
  - evbuffer_contains
  - http_readcb
  - http_writecb
  - http_errorcb
  - http_basic_cb
  - http_timeout_reply_cb
  - http_timeout_cb
  - http_large_cb
  - http_chunked_trickle_cb
  - http_chunked_cb
  - http_chunked_input_cb
  - create_bev
  - http_half_writecb
  - http_basic_test_impl
  - http_basic_test
  - http_basic_trailing_space_test
  - http_delay_reply
  - http_delay_cb
  - http_badreq_cb
  - http_badreq_errorcb
  - http_badreq_readcb
  - http_badreq_successcb
  - http_bad_request_test
  - http_large_delay_cb
  - http_genmethod_cb
  - http_genmethod_test
  - http_custom_cb
  - http_custom_test
  - http_delete_test
  - http_propfind_test
  - http_proppatch_test
  - http_mkcol_test
  - http_lock_test
  - http_unlock_test
  - http_copy_test
  - http_move_test
  - http_sent_cb
  - http_on_complete_cb
  - http_on_complete_test
  - http_allowed_methods_eventcb
  - http_allowed_methods_test
  - http_connection_test_
  - http_connection_test
  - http_persist_connection_test
  - http_connection_async_test
  - http_autofree_connection_test
  - http_request_never_call
  - http_failed_request_done
  - http_timed_out_request_done
  - http_request_error_cb_with_cancel
  - http_do_cancel
  - http_no_write
  - http_free_evcons
  - http_fill_backlog
  - http_cancel_test_bad_request_new
  - http_cancel_test
  - http_request_no_action_done
  - http_request_done
  - http_request_expect_error
  - http_virtual_host_test
  - http_request_empty_done
  - http_dispatcher_cb
  - http_dispatcher_test_done
  - http_dispatcher_test
  - http_connect_unixsocket
  - evhttp_bind_unixsocket
  - http_unix_socket_test_
  - http_unix_socket_test
  - http_unix_socket_preexist_test
  - http_post_test
  - http_post_cb
  - http_postrequest_done
  - http_put_test
  - http_put_cb
  - http_putrequest_done
  - http_failure_readcb
  - http_failure_test
  - close_detect_done
  - close_detect_launch
  - close_detect_cb
  - http_close_detection_
  - http_close_detection_test
  - http_close_detection_delay_test
  - http_highport_test
  - http_bad_header_test
  - validate_header
  - http_parse_query_test
  - http_parse_query_str_test
  - http_parse_query_str_flags_test
  - http_parse_uri_test
  - URI_PARSE_FLAGS
  - URI_PARSE
  - TT_URI
  - BAD
  - NCF
  - UNI
  - http_uriencode_test
  - ENC
  - DEC
  - OLD_DEC
  - http_base_test
  - http_incomplete_readcb
  - http_incomplete_errorcb
  - http_incomplete_writecb
  - http_incomplete_test_
  - http_incomplete_test
  - http_incomplete_timeout_test
  - http_chunked_readcb
  - http_chunked_errorcb
  - http_chunked_writecb
  - http_chunked_request_done
  - http_send_chunk_test_read_cb
  - http_send_chunk_test_write_cb
  - http_send_chunk_test_error_cb
  - http_send_chunk_test
  - http_send_chunk_malformed_test_write_cb
  - http_send_chunk_malformed_test_error_cb
  - http_send_chunk_malformed_test
  - http_chunk_out_test_impl
  - http_chunk_out_test
  - http_stream_out_test_impl
  - http_stream_out_test
  - http_stream_in_chunk
  - http_stream_in_done
  - http_stream_in_test_
  - http_stream_in_test
  - http_stream_in_cancel_chunk
  - http_stream_in_cancel_done
  - http_stream_in_cancel_test
  - http_connection_fail_done
  - http_connection_fail_test_impl
  - http_connection_fail_test
  - http_connection_retry_done
  - http_make_web_server
  - http_simple_test_impl
  - http_simple_test
  - http_simple_preexisting_test
  - http_simple_nonconformant_test
  - http_simple_nonconformant_preexisting_test
  - https_bind_ssl_bevcb
  - https_per_socket_bevcb_impl
  - https_per_socket_bevcb
  - http_connection_retry_test_basic
  - http_connection_retry_conn_address_test_impl
  - http_connection_retry_conn_address_test
  - http_connection_retry_test_impl
  - http_connection_retry_test
  - http_primitives
  - http_multi_line_header_test
  - http_request_bad
  - http_negative_content_length_test
  - http_data_length_constraints_test_done
  - http_large_entity_test_done
  - http_expectation_failed_done
  - http_data_length_constraints_test_impl
  - http_data_length_constraints_test
  - http_read_on_write_error_test
  - http_lingering_close_test_impl
  - http_non_lingering_close_test
  - http_lingering_close_test
  - terminate_chunked_trickle_cb
  - terminate_chunked_close_cb
  - terminate_chunked_cb
  - terminate_chunked_client
  - terminate_readcb
  - http_terminate_chunked_test_impl
  - http_terminate_chunked_test
  - http_terminate_chunked_oneshot_test
  - http_ipv6_for_domain_test_impl
  - http_ipv6_for_domain_test
  - http_request_get_addr_on_close
  - http_get_addr_test
  - http_set_family_test
  - http_set_family_ipv4_test
  - http_set_family_ipv6_test
  - http_write_during_read
  - http_write_during_read_test_impl
  - http_write_during_read_test
  - http_request_own_test
  - http_run_bev_request
  - http_request_extra_body_test
  - http_newreqcb_test_state_check
  - http_request_done_newreqcb
  - http_request_error_newreqcb
  - http_newreqcb
  - http_newreqcb_test
  - http_timeout_read_client_test
  - http_error_callback_gencb
  - http_error_callback_errorcb
  - http_error_callback_test_done
  - http_error_callback_test
  - http_add_output_buffer
  - http_timeout_read_server_test
  - http_max_connections_test
  - HTTP_LEGACY
  - HTTP_CAST_ARG
  - HTTP_OFF_N
  - HTTP_RET_N
  - HTTP_N
  - HTTP
  - HTTP_OPT
  - HTTPS
  - HTTPS_MBEDTLS
  - https_basic_test
  - https_filter_basic_test
  - https_incomplete_test
  - https_incomplete_timeout_test
  - https_simple_test
  - https_simple_preexisting_test
  - https_simple_dirty_test
  - https_simple_dirty_preexisting_test
  - https_connection_retry_conn_address_test
  - https_connection_retry_test
  - https_chunk_out_test
  - https_filter_chunk_out_test
  - https_stream_out_test
  - https_connection_fail_test
  - https_write_during_read_test
  - https_connection_test
  - https_persist_connection_test
  - https_per_socket_bevcb_test
  - https_mbedtls_basic_test
  - https_mbedtls_filter_basic_test
  - https_mbedtls_incomplete_test
  - https_mbedtls_incomplete_timeout_test
  - https_mbedtls_simple_test
  - https_mbedtls_simple_preexisting_test
  - https_mbedtls_simple_dirty_test
  - https_mbedtls_simple_dirty_preexisting_test
  - https_mbedtls_connection_retry_conn_address_test
  - https_mbedtls_connection_retry_test
  - https_mbedtls_chunk_out_test
  - https_mbedtls_filter_chunk_out_test
  - https_mbedtls_stream_out_test
  - https_mbedtls_connection_fail_test
  - https_mbedtls_write_during_read_test
  - https_mbedtls_connection_test
  - https_mbedtls_persist_connection_test
  - https_mbedtls_per_socket_bevcb_test
  source_file: /src/libevent/test/regress_http.c
  types:
    enum:
    - enumerators:
      - name: BASIC
        value: '1'
      - name: BY_HOST
        value: '2'
      - name: NO_NS
        value: '4'
      - name: SERVER_TIMEOUT
        value: '16'
      - name: INACTIVE_SERVER
        value: '8'
      - name: NS_TIMEOUT
        value: '32'
      item_type: enum
      name: http_cancel_test_type
      pos:
        line_end: 1738
        line_start: 1731
        source_file: /src/libevent/test/regress_http.c
    preproc_defs:
    - item_type: preproc_def
      name: SKIP_UNDER_WINDOWS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_http.c
      type_or_value: TT_SKIP
    - item_type: preproc_def
      name: SKIP_UNDER_WINDOWS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SKIP_UNDER_ANDROID
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/test/regress_http.c
      type_or_value: TT_SKIP
    - item_type: preproc_def
      name: SKIP_UNDER_ANDROID
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EVHTTP_REQ_CUSTOM
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libevent/test/regress_http.c
      type_or_value: ((EVHTTP_REQ_MAX) << 1)
    - item_type: preproc_def
      name: HTTP_BIND_IPV6
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HTTP_OPENSSL
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HTTP_SSL_FILTER
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '4'
    - item_type: preproc_def
      name: HTTP_MBEDTLS
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '8'
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: BACKLOG_SIZE
      pos:
        line_end: 1708
        line_start: 1707
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '256'
    - item_type: preproc_def
      name: POST_DATA
      pos:
        line_end: 2439
        line_start: 2438
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '"Okay.  Not really printf"'
    - item_type: preproc_def
      name: PUT_DATA
      pos:
        line_end: 2578
        line_start: 2577
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '"Hi, I''m some PUT data"'
    - item_type: preproc_def
      name: ERRCBFLAG_GENCB
      pos:
        line_end: 5719
        line_start: 5718
        source_file: /src/libevent/test/regress_http.c
      type_or_value: (0x01)
    - item_type: preproc_def
      name: ERRCBFLAG_ERRCB
      pos:
        line_end: 5720
        line_start: 5719
        source_file: /src/libevent/test/regress_http.c
      type_or_value: (0x02)
    - item_type: preproc_def
      name: ERRCBFLAG_BOTHCB
      pos:
        line_end: 5721
        line_start: 5720
        source_file: /src/libevent/test/regress_http.c
      type_or_value: (ERRCBFLAG_GENCB | ERRCBFLAG_ERRCB)
    structs:
    - fields:
      - name: '*base'
        type: struct event_base
      - name: '*req'
        type: struct evhttp_request
      - name: i
        type: int
      item_type: struct
      name: chunk_req_state
      pos:
        line_end: 485
        line_start: 481
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: port
        type: ev_uint16_t
      - name: ssl
        type: int
      - name: '*http'
        type: struct evhttp
      item_type: struct
      name: http_server
      pos:
        line_end: 4440
        line_start: 4435
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: '*base'
        type: struct event_base
      - name: '*req'
        type: struct evhttp_request
      - name: '*bev'
        type: struct bufferevent
      - name: fd
        type: evutil_socket_t
      - name: gotclosecb
        type: int
      - name: oneshot
        type: int
      item_type: struct
      name: terminate_state
      pos:
        line_end: 5122
        line_start: 5115
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: connections_started
        type: int
      - name: connections_noticed
        type: int
      - name: connections_throttled
        type: int
      - name: connections_good
        type: int
      - name: connections_error
        type: int
      - name: connections_done
        type: int
      item_type: struct
      name: http_newreqcb_test_state
      pos:
        line_end: 5563
        line_start: 5555
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: flags
        type: unsigned char
      - name: type
        type: enum evhttp_cmd_type
      - name: response_code
        type: int
      - name: length
        type: int
      item_type: struct
      name: error_callback_test
      pos:
        line_end: 5727
        line_start: 5722
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: '*data'
        type: struct basic_test_data
      - name: test_index
        type: unsigned
      - name: '*test'
        type: struct error_callback_test
      - name: test_failed
        type: int
      item_type: struct
      name: error_callback_state
      pos:
        line_end: 5746
        line_start: 5740
        source_file: /src/libevent/test/regress_http.c
    typedefs: []
    union: []
- function_names:
  - test_strcmp
  - setup_data_buffer
  - clean_data_buffer
  - test_memcpy
  - test_timeout
  - test_timeout_retry
  - main
  source_file: /src/libevent/test/tinytest_demo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buffer1[512]
        type: char
      - name: buffer2[512]
        type: char
      item_type: struct
      name: data_buffer
      pos:
        line_end: 106
        line_start: 98
        source_file: /src/libevent/test/tinytest_demo.c
    typedefs: []
    union: []
- function_names:
  - regress_ipv4_parse
  - regress_ipv6_parse
  - regress_ipv6_parse_scope
  - regress_sockaddr_port_parse
  - regress_sockaddr_port_format
  - test_evutil_sockaddr_predicates
  - test_evutil_strtoll
  - test_evutil_snprintf
  - test_evutil_casecmp
  - test_evutil_rtrim
  - TEST_TRIM
  - logfn
  - fatalfn
  - check_error_logging
  - errx_fn
  - err_fn
  - sock_err_fn
  - test_evutil_log
  - RESET
  - LOGEQ
  - test_evutil_strlcpy
  - test_evutil_upcast
  - test_evutil_integers
  - ai_find_by_family
  - ai_find_by_protocol
  - test_ai_eq_
  - test_evutil_rand
  - test_EVUTIL_IS_
  - test_evutil_getaddrinfo
  - test_evutil_getaddrinfo_live
  - test_evutil_getaddrinfo_AI_ADDRCONFIG
  - test_evutil_loadsyslib
  - test_event_malloc
  - test_event_calloc
  - test_event_calloc_enomem
  - test_event_strdup
  - test_evutil_usleep
  - test_evutil_monotonic_res
  - test_evutil_monotonic_prc
  - create_tm_from_unix_epoch
  - test_evutil_date_rfc1123
  - test_evutil_v4addr_is_local
  - LOCAL
  - test_evutil_v6addr_is_local
  - LOCAL6
  - socketpair_init
  - socketpair_close
  - test_evutil_socketpair_create
  - SOCKETPAIR_CHECK_CLOSE
  - test_evutil_win_socketpair
  - CHK_LOCALADDR
  - get_windows_build
  - test_evutil_check_working_afunix
  source_file: /src/libevent/test/regress_util.c
  types:
    enum:
    - enumerators:
      - name: NORMAL
      - name: BAD
      - name: CANONICAL
      item_type: enum
      name: entry_status
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libevent/test/regress_util.c
    preproc_defs:
    - item_type: preproc_def
      name: MIN_BUILD_NUM
      pos:
        line_end: 1833
        line_start: 1832
        source_file: /src/libevent/test/regress_util.c
      type_or_value: '17063'
    structs:
    - fields:
      - name: '*addr'
        type: char
      - name: res
        type: ev_uint32_t
      - name: status
        type: enum entry_status
      item_type: struct
      name: ipv4_entry
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*addr'
        type: char
      - name: res[4]
        type: ev_uint32_t
      - name: status
        type: enum entry_status
      item_type: struct
      name: ipv6_entry
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*addr'
        type: char
      - name: res[4]
        type: ev_uint32_t
      - name: scope
        type: unsigned
      - name: status
        type: enum entry_status
      item_type: struct
      name: ipv6_entry_scope
      pos:
        line_end: 222
        line_start: 217
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*parse'
        type: char
      - name: safamily
        type: int
      - name: '*addr'
        type: char
      - name: port
        type: int
      item_type: struct
      name: sa_port_ent
      pos:
        line_end: 281
        line_start: 276
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*parse'
        type: char
      - name: is_loopback
        type: int
      item_type: struct
      name: sa_pred_ent
      pos:
        line_end: 391
        line_start: 387
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*a'
        type: char
      - name: '*b'
        type: char
      - name: c
        type: long
      item_type: struct
      name: example_struct
      pos:
        line_end: 736
        line_start: 732
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: t
        type: time_t
      - name: date[30]
        type: char
      item_type: struct
      name: date_rfc1123_case
      pos:
        line_end: 1541
        line_start: 1538
        source_file: /src/libevent/test/regress_util.c
    typedefs: []
    union: []
- function_names:
  - set_random_timeout
  - check_heap
  - test_heap_randomized
  source_file: /src/libevent/test/regress_minheap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/libevent/test/test-eof.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - timer_callback
  - simple_callback
  - event_finalize_callback_1
  - callback_finalize_callback_1
  - test_fin_cb_invoked
  - tfff_malloc
  - tfff_free
  - tfff_realloc
  - test_fin_free_finalize
  - event_finalize_callback_2
  - timer_callback_2
  - test_fin_within_cb
  - event_finalize_callback_free
  - test_fin_debug_use_after_free
  - timer_callback_3
  - test_fin_many
  - TEST
  source_file: /src/libevent/test/regress_finalize.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ev'
        type: struct event
      - name: '*ev2'
        type: struct event
      - name: count
        type: int
      item_type: struct
      name: event_and_count
      pos:
        line_end: 236
        line_start: 232
        source_file: /src/libevent/test/regress_finalize.c
    typedefs: []
    union: []
- function_names:
  - SSL_use_certificate
  - SSL_use_PrivateKey
  - X509_free
  - mbedtls_debug
  - mbedtls_rng
  - mbedtls_getkey
  - create_tm_from_unix_epoch
  - mbedtls_getcert
  - get_mbedtls_config
  - init_mbedtls
  - mbedtls_test_setup
  - mbedtls_test_cleanup
  - bio_rwcount_read
  - bio_rwcount_write
  - BIO_setup
  source_file: /src/libevent/test/regress_mbedtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TESTCASES_NAME
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_testcases
    - item_type: preproc_def
      name: OPENSSL_VERSION_NUMBER
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_IS_CLIENT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: MBEDTLS_SSL_IS_CLIENT
    - item_type: preproc_def
      name: SSL_IS_SERVER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: MBEDTLS_SSL_IS_SERVER
    - item_type: preproc_def
      name: get_ssl_ctx
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: get_mbedtls_config
    - item_type: preproc_def
      name: SSL_renegotiate
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_renegotiate
    - item_type: preproc_def
      name: SSL_get_peer_certificate
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_get_peer_cert
    - item_type: preproc_def
      name: SSL_get1_peer_certificate
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_get_peer_cert
    - item_type: preproc_def
      name: SSL_new
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_dyncontext_new
    - item_type: preproc_def
      name: X509
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: const mbedtls_x509_crt
    - item_type: preproc_def
      name: SSL
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_context
    - item_type: preproc_def
      name: bufferevent_ssl_get_ssl
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_get_ssl
    - item_type: preproc_def
      name: bufferevent_ssl_set_allow_dirty_shutdown
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_set_allow_dirty_shutdown
    - item_type: preproc_def
      name: bufferevent_ssl_socket_new
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_socket_new
    - item_type: preproc_def
      name: bufferevent_ssl_filter_new
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_filter_new
    - item_type: preproc_def
      name: ssl_setup
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_setup
    structs: []
    typedefs: []
    union: []
- function_names:
  - SLIST_HEAD_INITIALIZER
  - SLIST_FIRST
  - SLIST_END
  - SLIST_EMPTY
  - SLIST_NEXT
  - SLIST_FOREACH
  - SLIST_INIT
  - SLIST_INSERT_AFTER
  - SLIST_INSERT_HEAD
  - SLIST_REMOVE_HEAD
  - LIST_HEAD_INITIALIZER
  - LIST_ENTRY
  - LIST_FIRST
  - LIST_END
  - LIST_EMPTY
  - LIST_NEXT
  - LIST_FOREACH
  - LIST_INIT
  - LIST_INSERT_AFTER
  - LIST_INSERT_BEFORE
  - LIST_INSERT_HEAD
  - LIST_REMOVE
  - LIST_REPLACE
  - SIMPLEQ_HEAD
  - SIMPLEQ_HEAD_INITIALIZER
  - SIMPLEQ_FIRST
  - SIMPLEQ_END
  - SIMPLEQ_EMPTY
  - SIMPLEQ_NEXT
  - SIMPLEQ_FOREACH
  - SIMPLEQ_INIT
  - SIMPLEQ_INSERT_HEAD
  - SIMPLEQ_INSERT_TAIL
  - SIMPLEQ_INSERT_AFTER
  - SIMPLEQ_REMOVE_HEAD
  - TAILQ_HEAD
  - TAILQ_HEAD_INITIALIZER
  - TAILQ_ENTRY
  - TAILQ_FIRST
  - TAILQ_END
  - TAILQ_NEXT
  - TAILQ_LAST
  - TAILQ_PREV
  - TAILQ_EMPTY
  - TAILQ_FOREACH
  - TAILQ_FOREACH_REVERSE
  - TAILQ_INIT
  - TAILQ_INSERT_HEAD
  - TAILQ_INSERT_TAIL
  - TAILQ_INSERT_AFTER
  - TAILQ_INSERT_BEFORE
  - TAILQ_REMOVE
  - TAILQ_REPLACE
  - CIRCLEQ_HEAD
  - CIRCLEQ_HEAD_INITIALIZER
  - CIRCLEQ_ENTRY
  - CIRCLEQ_FIRST
  - CIRCLEQ_LAST
  - CIRCLEQ_END
  - CIRCLEQ_NEXT
  - CIRCLEQ_PREV
  - CIRCLEQ_EMPTY
  - CIRCLEQ_FOREACH
  - CIRCLEQ_FOREACH_REVERSE
  - CIRCLEQ_INIT
  - CIRCLEQ_INSERT_AFTER
  - CIRCLEQ_INSERT_BEFORE
  - CIRCLEQ_INSERT_HEAD
  - CIRCLEQ_INSERT_TAIL
  - CIRCLEQ_REMOVE
  - CIRCLEQ_REPLACE
  source_file: /src/libevent/compat/sys/queue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPLAY_INITIALIZER
  - SPLAY_INIT
  - SPLAY_ENTRY
  - SPLAY_LEFT
  - SPLAY_RIGHT
  - SPLAY_ROOT
  - SPLAY_EMPTY
  - SPLAY_ROTATE_RIGHT
  - SPLAY_ROTATE_LEFT
  - SPLAY_LINKLEFT
  - SPLAY_LINKRIGHT
  - SPLAY_ASSEMBLE
  - SPLAY_PROTOTYPE
  - _SPLAY_FIND
  - _SPLAY_NEXT
  - _SPLAY_MIN_MAX
  - SPLAY_GENERATE
  - _SPLAY_MINMAX
  - SPLAY_INSERT
  - SPLAY_REMOVE
  - SPLAY_FIND
  - SPLAY_NEXT
  - SPLAY_MIN
  - SPLAY_MAX
  - SPLAY_FOREACH
  - RB_INITIALIZER
  - RB_INIT
  - RB_ENTRY
  - RB_LEFT
  - RB_RIGHT
  - RB_PARENT
  - RB_COLOR
  - RB_ROOT
  - RB_EMPTY
  - RB_SET
  - RB_SET_BLACKRED
  - RB_ROTATE_LEFT
  - RB_ROTATE_RIGHT
  - RB_PROTOTYPE
  - RB_GENERATE
  - _RB_INSERT
  - _RB_FIND
  - _RB_NEXT
  - _RB_MINMAX
  - RB_INSERT
  - RB_REMOVE
  - RB_FIND
  - RB_NEXT
  - RB_MIN
  - RB_MAX
  - RB_FOREACH
  source_file: /src/libevent/compat/sys/tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_NEGINF
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SPLAY_INF
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_BLACK
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RB_RED
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_NEGINF
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: RB_INF
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - eq
  - histogram_new
  - histogram_free
  - histogram_update
  - histogram_query
  - on_prepare
  - on_check
  - on_timeout
  - on_sigint
  - main
  source_file: /src/libevent/sample/watch-timing.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INFINITY
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/libevent/sample/watch-timing.c
      type_or_value: (1.0/0.0)
    structs:
    - fields:
      - name: centroid
        type: double
      - name: count
        type: unsigned long
      item_type: struct
      name: bin
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/libevent/sample/watch-timing.c
    - fields:
      - name: '*bins'
        type: struct bin
      - name: max_bins
        type: unsigned
      - name: num_bins
        type: unsigned
      - name: gap
        type: unsigned
      - name: count
        type: unsigned long
      - name: min
        type: double
      - name: max
        type: double
      item_type: struct
      name: histogram
      pos:
        line_end: 77
        line_start: 69
        source_file: /src/libevent/sample/watch-timing.c
    typedefs: []
    union: []
- function_names:
  - Curl_raw_toupper
  - Curl_raw_equal
  - Curl_raw_nequal
  - hostmatch
  - Curl_cert_hostcheck
  source_file: /src/libevent/sample/hostcheck.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - debug_ntoa
  - main_callback
  - gai_callback
  - evdns_server_callback
  - logfn
  - main
  source_file: /src/libevent/sample/dns-example.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: u32
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libevent/sample/dns-example.c
      type_or_value: ev_uint32_t
    - item_type: preproc_def
      name: u8
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libevent/sample/dns-example.c
      type_or_value: ev_uint8_t
    structs:
    - fields:
      - name: reverse
        type: int
      - name: use_getaddrinfo
        type: int
      - name: servertest
        type: int
      - name: '*resolv_conf'
        type: char
      - name: '*ns'
        type: char
      item_type: struct
      name: options
      pos:
        line_end: 164
        line_start: 158
        source_file: /src/libevent/sample/dns-example.c
    typedefs: []
    union: []
- function_names:
  - S_ISDIR
  - guess_content_type
  - dump_request_cb
  - send_document_cb
  - print_usage
  - parse_opts
  - do_term
  - display_listen_sock
  - main
  source_file: /src/libevent/sample/http-server.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _stat
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _fstat
    - item_type: preproc_def
      name: open
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _open
    - item_type: preproc_def
      name: close
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _close
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _O_RDONLY
    structs:
    - fields:
      - name: '*extension'
        type: char
      - name: '*content_type'
        type: char
      item_type: struct
      name: table_entry
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/libevent/sample/http-server.c
    - fields:
      - name: port
        type: int
      - name: iocp
        type: int
      - name: verbose
        type: int
      - name: max_body_size
        type: int
      - name: unlink
        type: int
      - name: '*unixsock'
        type: char
      - name: '*bind'
        type: char
      - name: '*docroot'
        type: char
      item_type: struct
      name: options
      pos:
        line_end: 111
        line_start: 101
        source_file: /src/libevent/sample/http-server.c
    typedefs: []
    union: []
- function_names:
  - VERIFY
  - uri_parse
  - uri_path
  - uri_hostport
  - get_cb
  - connect_cb
  - main
  source_file: /src/libevent/sample/http-connect.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: URL_MAX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libevent/sample/http-connect.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: '*evcon'
        type: struct evhttp_connection
      - name: '*location'
        type: struct evhttp_uri
      item_type: struct
      name: connect_base
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/libevent/sample/http-connect.c
    typedefs: []
    union: []
- function_names:
  - fifo_read
  - signal_cb
  - main
  source_file: /src/libevent/sample/event-read-fifo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - syntax
  - err
  - err_mbedtls
  - cert_verify_callback
  - err_openssl
  - cert_verify_callback
  - add_cert_for_store
  - strndup
  source_file: /src/libevent/sample/https-client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libevent/sample/https-client.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libevent/sample/https-client.c
      type_or_value: '_stricmp '
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_debug
  - writecb
  - readcb
  - eventcb
  - main
  source_file: /src/libevent/sample/ssl-client-mbedtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_CA_CRT_RSA_SHA256_PEM
      pos:
        line_end: 73
        line_start: 52
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: "\"-----BEGIN CERTIFICATE-----\\r\\n\"                                      \\\n
        \   \"MIIDQTCCAimgAwIBAgIBAzANBgkqhkiG9w0BAQsFADA7MQswCQYDVQQGEwJOTDER\\r\\n\"
        \\\n    \"MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN\\r\\n\"
        \\\n    \"MTkwMjEwMTQ0NDAwWhcNMjkwMjEwMTQ0NDAwWjA7MQswCQYDVQQGEwJOTDERMA8G\\r\\n\"
        \\\n    \"A1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwggEiMA0G\\r\\n\"
        \\\n    \"CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA3zf8F7vglp0/ht6WMn1EpRagzSHx\\r\\n\"
        \\\n    \"mdTs6st8GFgIlKXsm8WL3xoemTiZhx57wI053zhdcHgH057Zk+i5clHFzqMwUqny\\r\\n\"
        \\\n    \"50BwFMtEonILwuVA+T7lpg6z+exKY8C4KQB0nFc7qKUEkHHxvYPZP9al4jwqj+8n\\r\\n\"
        \\\n    \"YMPGn8u67GB9t+aEMr5P+1gmIgNb1LTV+/Xjli5wwOQuvfwu7uJBVcA0Ln0kcmnL\\r\\n\"
        \\\n    \"R7EUQIN9Z/SG9jGr8XmksrUuEvmEF/Bibyc+E1ixVA0hmnM3oTDPb5Lc9un8rNsu\\r\\n\"
        \\\n    \"KNF+AksjoBXyOGVkCeoMbo4bF6BxyLObyavpw/LPh5aPgAIynplYb6LVAgMBAAGj\\r\\n\"
        \\\n    \"UDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFLRa5KWz3tJS9rnVppUP6z68x/3/\\r\\n\"
        \\\n    \"MB8GA1UdIwQYMBaAFLRa5KWz3tJS9rnVppUP6z68x/3/MA0GCSqGSIb3DQEBCwUA\\r\\n\"
        \\\n    \"A4IBAQA4qFSCth2q22uJIdE4KGHJsJjVEfw2/xn+MkTvCMfxVrvmRvqCtjE4tKDl\\r\\n\"
        \\\n    \"oK4MxFOek07oDZwvtAT9ijn1hHftTNS7RH9zd/fxNpfcHnMZXVC4w4DNA1fSANtW\\r\\n\"
        \\\n    \"5sY1JB5Je9jScrsLSS+mAjyv0Ow3Hb2Bix8wu7xNNrV5fIf7Ubm+wt6SqEBxu3Kb\\r\\n\"
        \\\n    \"+EfObAT4huf3czznhH3C17ed6NSbXwoXfby7stWUDeRJv08RaFOykf/Aae7bY5PL\\r\\n\"
        \\\n    \"yTVrkAnikMntJ9YI+hNNYt3inqq11A5cN0+rVTst8UKCxzQ4GpvroSwPKTFkbMw4\\r\\n\"
        \\\n    \"/anT1dVxr/BtwJfiESoK3/4CeXR1\\r\\n\"                                     \\\n
        \   \"-----END CERTIFICATE-----\\r\\n\""
    - item_type: preproc_def
      name: SERVER_PORT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '"443"'
    - item_type: preproc_def
      name: SERVER_NAME
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '"amazon.com"'
    - item_type: preproc_def
      name: GET_REQUEST
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '"GET / HTTP/1.0\r\n\r\n"'
    - item_type: preproc_def
      name: DEBUG_LEVEL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - readcb
  - drained_writecb
  - close_on_finished_writecb
  - eventcb
  - syntax
  - accept_cb
  - main
  source_file: /src/libevent/sample/le-proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_OUTPUT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/sample/le-proxy.c
      type_or_value: (512*1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - signal_cb
  - main
  source_file: /src/libevent/sample/signal-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/sample/hostcheck.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_HOST_NOMATCH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libevent/sample/hostcheck.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_HOST_MATCH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libevent/sample/hostcheck.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - listener_cb
  - conn_writecb
  - conn_eventcb
  - signal_cb
  source_file: /src/libevent/sample/hello-world.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHECK_FMT
  - info
  - error
  - be_free
  - be_new
  - be_set_timeout
  - ssl_init
  - ssl_init
  - ssl_ctx_free
  - ssl_load_key
  - ssl_load_cert
  - ssl_ctx_init
  - print_usage
  - parse_opts
  - do_term
  - make_address
  - be_ssl_errors
  - event_cb_
  - read_cb
  - write_cb
  - server_event_cb
  - accept_cb
  - client_event_cb
  - in_event_cb
  - trigger_bev_write_cb
  - main
  source_file: /src/libevent/sample/becat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STDIN_FILENO
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/sample/becat.c
      type_or_value: '0'
    structs:
    - fields:
      - name: port
        type: int
      - name: '*address'
        type: char
      item_type: struct
      name: addr
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/libevent/sample/becat.c
    - fields:
      - name: src
        type: struct addr
      - name: dst
        type: struct addr
      - name: max_read
        type: int
      - name: timeout
        type: "struct {\n\t\tint read; /* seconds */\n\t\tint write; /* seconds */\n\t}"
      - name: tcp_keepalive_timeout
        type: int
      - name: extra
        type: "struct {\n\t\tint listen:1;\n\t\tint keep:1;\n\t\tint ssl:1;\n\t}"
      item_type: struct
      name: options
      pos:
        line_end: 77
        line_start: 60
        source_file: /src/libevent/sample/becat.c
    - fields:
      - name: '*ctx'
        type: SSL_CTX
      - name: '*pkey'
        type: EVP_PKEY
      - name: '*cert'
        type: X509
      item_type: struct
      name: ssl_context
      pos:
        line_end: 83
        line_start: 78
        source_file: /src/libevent/sample/becat.c
    - fields:
      - name: '*opts'
        type: struct options
      - name: ssl
        type: struct ssl_context
      - name: '*in'
        type: struct bufferevent
      - name: '*out'
        type: struct bufferevent
      - name: '*fout'
        type: FILE
      item_type: struct
      name: context
      pos:
        line_end: 93
        line_start: 84
        source_file: /src/libevent/sample/becat.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/sample/openssl_hostname_validation.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_d
  - broadcast_msg
  - on_msg_cb
  - on_close_cb
  - nice_addr
  - addr2str
  - on_ws
  - on_html
  - signal_cb
  - main
  source_file: /src/libevent/sample/ws-chat-server.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _stat
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _fstat
    - item_type: preproc_def
      name: open
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _open
    - item_type: preproc_def
      name: close
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _close
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _O_RDONLY
    structs:
    - fields:
      - name: '*evws'
        type: struct evws_connection
      - name: name[INET6_ADDRSTRLEN]
        type: char
      - name: (client)
        type: TAILQ_ENTRY
      item_type: struct
      name: client
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/libevent/sample/ws-chat-server.c
    typedefs:
    - item_type: typedef
      name: (clients_s, client)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/libevent/sample/ws-chat-server.c
      type: TAILQ_HEAD
    union: []
- function_names:
  - timeout_cb
  - signal_cb
  - main
  source_file: /src/libevent/sample/time-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - matches_common_name
  - matches_subject_alternative_name
  - validate_hostname
  source_file: /src/libevent/sample/openssl_hostname_validation.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOSTNAME_MAX_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/sample/openssl_hostname_validation.c
      type_or_value: '255'
    - item_type: preproc_def
      name: ASN1_STRING_get0_data
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libevent/sample/openssl_hostname_validation.c
      type_or_value: ASN1_STRING_data
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evutil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evhttp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evdns.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evrpc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/bufferevent_ssl.h
  types:
    enum:
    - enumerators:
      - name: BUFFEREVENT_SSL_OPEN
        value: '0'
      - name: BUFFEREVENT_SSL_CONNECTING
        value: '1'
      - name: BUFFEREVENT_SSL_ACCEPTING
        value: '2'
      item_type: enum
      name: bufferevent_ssl_state
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
    preproc_defs:
    - item_type: preproc_def
      name: BUFFEREVENT_SSL_DIRTY_SHUTDOWN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BUFFEREVENT_SSL_BATCH_WRITE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
      type_or_value: '2'
    structs: []
    typedefs:
    - item_type: typedef
      name: mbedtls_dyncontext
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
      type: mbedtls_ssl_context
    union: []
- function_names:
  - EVBUFFER_LENGTH
  - EVBUFFER_DATA
  source_file: /src/libevent/include/event2/buffer_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evbuffer_cb)(struct evbuffer *buffer, size_t old_len, size_t new_len,
        void *arg)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libevent/include/event2/buffer_compat.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/tag.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/http.h
  types:
    enum:
    - enumerators:
      - name: EVHTTP_REQ_GET
        value: 1 << 0
      - name: EVHTTP_REQ_PUT
        value: 1 << 3
      - name: EVHTTP_REQ_DELETE
        value: 1 << 4
      - name: EVHTTP_REQ_HEAD
        value: 1 << 2
      - name: EVHTTP_REQ_POST
        value: 1 << 1
      - name: EVHTTP_REQ_OPTIONS
        value: 1 << 5
      - name: EVHTTP_REQ_TRACE
        value: 1 << 6
      - name: EVHTTP_REQ_CONNECT
        value: 1 << 7
      - name: EVHTTP_REQ_PATCH
        value: 1 << 8
      - name: EVHTTP_REQ_PROPFIND
        value: 1 << 9
      - name: EVHTTP_REQ_MKCOL
        value: 1 << 11
      - name: EVHTTP_REQ_LOCK
        value: 1 << 12
      - name: EVHTTP_REQ_COPY
        value: 1 << 14
      - name: EVHTTP_REQ_MOVE
        value: 1 << 15
      - name: EVHTTP_REQ_UNLOCK
        value: 1 << 13
      - name: EVHTTP_REQ_PROPPATCH
        value: 1 << 10
      item_type: enum
      name: evhttp_cmd_type
      pos:
        line_end: 639
        line_start: 622
        source_file: /src/libevent/include/event2/http.h
    - enumerators:
      - name: EVHTTP_REQUEST
      - name: EVHTTP_RESPONSE
      item_type: enum
      name: evhttp_request_kind
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/libevent/include/event2/http.h
    - enumerators:
      - name: EVREQ_HTTP_TIMEOUT
      - name: EVREQ_HTTP_BUFFER_ERROR
      - name: EVREQ_HTTP_EOF
      - name: EVREQ_HTTP_REQUEST_CANCEL
      - name: EVREQ_HTTP_INVALID_HEADER
      - name: EVREQ_HTTP_DATA_TOO_LONG
      item_type: enum
      name: evhttp_request_error
      pos:
        line_end: 791
        line_start: 766
        source_file: /src/libevent/include/event2/http.h
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_CONTINUE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "100\t"
    - item_type: preproc_def
      name: HTTP_SWITCH_PROTOCOLS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "101\t"
    - item_type: preproc_def
      name: HTTP_PROCESSING
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "102\t"
    - item_type: preproc_def
      name: HTTP_EARLYHINTS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "103\t"
    - item_type: preproc_def
      name: HTTP_OK
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "200\t"
    - item_type: preproc_def
      name: HTTP_CREATED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "201\t"
    - item_type: preproc_def
      name: HTTP_ACCEPTED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "202\t"
    - item_type: preproc_def
      name: HTTP_NONAUTHORITATIVE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "203\t"
    - item_type: preproc_def
      name: HTTP_NOCONTENT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "204\t"
    - item_type: preproc_def
      name: HTTP_MOVEPERM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "301\t"
    - item_type: preproc_def
      name: HTTP_MOVETEMP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "302\t"
    - item_type: preproc_def
      name: HTTP_NOTMODIFIED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "304\t"
    - item_type: preproc_def
      name: HTTP_BADREQUEST
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "400\t"
    - item_type: preproc_def
      name: HTTP_UNAUTHORIZED
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "401\t"
    - item_type: preproc_def
      name: HTTP_PAYMENTREQUIRED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "402\t"
    - item_type: preproc_def
      name: HTTP_FORBIDDEN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "403\t"
    - item_type: preproc_def
      name: HTTP_NOTFOUND
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "404\t"
    - item_type: preproc_def
      name: HTTP_BADMETHOD
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "405 \t"
    - item_type: preproc_def
      name: HTTP_ENTITYTOOLARGE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "413\t"
    - item_type: preproc_def
      name: HTTP_EXPECTATIONFAILED
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "417\t"
    - item_type: preproc_def
      name: HTTP_INTERNAL
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '500     '
    - item_type: preproc_def
      name: HTTP_NOTIMPLEMENTED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '501     '
    - item_type: preproc_def
      name: HTTP_BADGATEWAY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "502\t"
    - item_type: preproc_def
      name: HTTP_SERVUNAVAIL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "503\t"
    - item_type: preproc_def
      name: EVHTTP_SERVER_LINGERING_CLOSE
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EVHTTP_REQ_MAX
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/libevent/include/event2/http.h
      type_or_value: EVHTTP_REQ_MOVE
    - item_type: preproc_def
      name: EVHTTP_METHOD_HAS_BODY
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EVHTTP_CON_REUSE_CONNECTED_ADDR
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: EVHTTP_CON_READ_ON_WRITE_ERROR
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EVHTTP_CON_LINGERING_CLOSE
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: EVHTTP_CON_PUBLIC_FLAGS_END
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: EVHTTP_URI_QUERY_NONCONFORMANT
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVHTTP_URI_QUERY_LAST_VAL
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVHTTP_URI_NONCONFORMANT
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVHTTP_URI_HOST_STRIP_BRACKETS
      pos:
        line_end: 1457
        line_start: 1456
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVHTTP_URI_UNIX_SOCKET
      pos:
        line_end: 1464
        line_start: 1463
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x08'
    structs:
    - fields:
      - name: '*method'
        type: char
      - name: type
        type: ev_uint32_t
      - name: flags
        type: ev_uint16_t
      item_type: struct
      name: evhttp_ext_method
      pos:
        line_end: 654
        line_start: 650
        source_file: /src/libevent/include/event2/http.h
    typedefs:
    - item_type: typedef
      name: evhttp_bound_socket_foreach_fn(struct evhttp_bound_socket *, void *)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/libevent/include/event2/http.h
      type: void
    - item_type: typedef
      name: (*evhttp_ext_method_cb)(struct evhttp_ext_method *)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/libevent/include/event2/http.h
      type: int
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/dns_struct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dns_question_class
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/include/event2/dns_struct.h
      type_or_value: class
    structs:
    - fields:
      - name: flags
        type: int
      - name: nquestions
        type: int
      - name: '**questions'
        type: struct evdns_server_question
      item_type: struct
      name: evdns_server_request
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/libevent/include/event2/dns_struct.h
    - fields:
      - name: type
        type: int
      - name: name[1]
        type: char
      item_type: struct
      name: evdns_server_question
      pos:
        line_end: 72
        line_start: 60
        source_file: /src/libevent/include/event2/dns_struct.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/bufferevent_struct.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: low
        type: size_t
      - name: high
        type: size_t
      item_type: struct
      name: event_watermark
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/libevent/include/event2/bufferevent_struct.h
    - fields:
      - name: '*ev_base'
        type: struct event_base
      - name: '*be_ops'
        type: struct bufferevent_ops
      - name: ev_read
        type: struct event
      - name: ev_write
        type: struct event
      - name: '*input'
        type: struct evbuffer
      - name: '*output'
        type: struct evbuffer
      - name: wm_read
        type: struct event_watermark
      - name: wm_write
        type: struct event_watermark
      - name: readcb
        type: bufferevent_data_cb
      - name: writecb
        type: bufferevent_data_cb
      - name: errorcb
        type: bufferevent_event_cb
      - name: '*cbarg'
        type: void
      - name: timeout_read
        type: struct timeval
      - name: timeout_write
        type: struct timeval
      - name: enabled
        type: short
      item_type: struct
      name: bufferevent
      pos:
        line_end: 109
        line_start: 69
        source_file: /src/libevent/include/event2/bufferevent_struct.h
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  source_file: /src/libevent/include/event2/bufferevent.h
  types:
    enum:
    - enumerators:
      - name: BEV_OPT_CLOSE_ON_FREE
        value: (1<<0)
      - name: BEV_OPT_UNLOCK_CALLBACKS
        value: (1<<3)
      - name: BEV_OPT_DEFER_CALLBACKS
        value: (1<<2)
      - name: BEV_OPT_THREADSAFE
        value: (1<<1)
      item_type: enum
      name: bufferevent_options
      pos:
        line_end: 174
        line_start: 157
        source_file: /src/libevent/include/event2/bufferevent.h
    - enumerators:
      - name: BEV_NORMAL
        value: '0'
      - name: BEV_FINISHED
        value: '2'
      - name: BEV_FLUSH
        value: '1'
      item_type: enum
      name: bufferevent_flush_mode
      pos:
        line_end: 641
        line_start: 632
        source_file: /src/libevent/include/event2/bufferevent.h
    - enumerators:
      - name: BEV_TRIG_IGNORE_WATERMARKS
        value: (1<<16)
      - name: BEV_TRIG_DEFER_CALLBACKS
        value: BEV_OPT_DEFER_CALLBACKS
      item_type: enum
      name: bufferevent_trigger_options
      pos:
        line_end: 669
        line_start: 660
        source_file: /src/libevent/include/event2/bufferevent.h
    - enumerators:
      - name: BEV_OK
        value: '0'
      - name: BEV_NEED_MORE
        value: '1'
      - name: BEV_ERROR
        value: '2'
      item_type: enum
      name: bufferevent_filter_result
      pos:
        line_end: 717
        line_start: 707
        source_file: /src/libevent/include/event2/bufferevent.h
    preproc_defs:
    - item_type: preproc_def
      name: BEV_EVENT_READING
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: BEV_EVENT_WRITING
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: BEV_EVENT_EOF
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x10\t"
    - item_type: preproc_def
      name: BEV_EVENT_ERROR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x20\t"
    - item_type: preproc_def
      name: BEV_EVENT_TIMEOUT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x40\t"
    - item_type: preproc_def
      name: BEV_EVENT_CONNECTED
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x80\t"
    - item_type: preproc_def
      name: EV_RATE_LIMIT_MAX
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: EV_SSIZE_MAX
    structs: []
    typedefs:
    - item_type: typedef
      name: (*bufferevent_data_cb)(struct bufferevent *bev, void *ctx)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libevent/include/event2/bufferevent.h
      type: void
    - item_type: typedef
      name: (*bufferevent_event_cb)(struct bufferevent *bev, short what, void *ctx)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/libevent/include/event2/bufferevent.h
      type: void
    - item_type: typedef
      name: "(*bufferevent_filter_cb)(\n    struct evbuffer *src, struct evbuffer
        *dst, ev_ssize_t dst_limit,\n    enum bufferevent_flush_mode mode, void *ctx)"
      pos:
        line_end: 739
        line_start: 737
        source_file: /src/libevent/include/event2/bufferevent.h
      type: bufferevent_filter_result
    union: []
- function_names:
  - evtimer_set
  - evsignal_set
  - timeout_add
  - timeout_set
  - timeout_del
  - timeout_pending
  - timeout_initialized
  - signal_add
  - signal_set
  - signal_del
  - signal_pending
  - signal_initialized
  - EVENT_FD
  - EVENT_SIGNAL
  source_file: /src/libevent/include/event2/event_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/http_struct.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*evcon'
        type: struct evhttp_connection
      - name: flags
        type: int
      - name: '*input_headers'
        type: struct evkeyvalq
      - name: '*output_headers'
        type: struct evkeyvalq
      - name: '*remote_host'
        type: char
      - name: remote_port
        type: ev_uint16_t
      - name: '*host_cache'
        type: char
      - name: kind
        type: enum evhttp_request_kind
      - name: type
        type: enum evhttp_cmd_type
      - name: headers_size
        type: size_t
      - name: body_size
        type: size_t
      - name: '*uri'
        type: char
      - name: '*uri_elems'
        type: struct evhttp_uri
      - name: major
        type: char
      - name: minor
        type: char
      - name: response_code
        type: int
      - name: '*response_code_line'
        type: char
      - name: '*input_buffer'
        type: struct evbuffer
      - name: ntoread
        type: ev_int64_t
      - name: chunked
        type: unsigned
      - name: '*output_buffer'
        type: struct evbuffer
      - name: (*cb)(struct evhttp_request *, void *)
        type: void
      - name: '*cb_arg'
        type: void
      - name: (*chunk_cb)(struct evhttp_request *, void *)
        type: void
      - name: (*header_cb)(struct evhttp_request *, void *)
        type: int
      - name: (*error_cb)(enum evhttp_request_error, void *)
        type: void
      - name: (*on_complete_cb)(struct evhttp_request *, void *)
        type: void
      - name: '*on_complete_cb_arg'
        type: void
      item_type: struct
      name: evhttp_request
      pos:
        line_end: 134
        line_start: 56
        source_file: /src/libevent/include/event2/http_struct.h
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  - EVUTIL_CLOSESOCKET
  - EVUTIL_SOCKET_ERROR
  - EVUTIL_SET_SOCKET_ERROR
  - EVUTIL_SOCKET_ERROR
  - EVUTIL_SET_SOCKET_ERROR
  - evutil_socket_geterror
  - evutil_socket_error_to_string
  - EVUTIL_SOCKET_ERROR
  - EVUTIL_SET_SOCKET_ERROR
  - evutil_socket_geterror
  - evutil_socket_error_to_string
  - evutil_timeradd
  - evutil_timersub
  - evutil_timeradd
  - evutil_timersub
  - evutil_timerclear
  - evutil_timerclear
  - evutil_timercmp
  - evutil_timerisset
  - evutil_timerisset
  - evutil_offsetof
  - evutil_offsetof
  - evutil_gettimeofday
  source_file: /src/libevent/include/event2/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVENT__SOLARIS_11_4
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/include/event2/util.h
      type_or_value: (1)
    - item_type: preproc_def
      name: EVENT__SOLARIS_11_4
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libevent/include/event2/util.h
      type_or_value: (0)
    - item_type: preproc_def
      name: EVENT__SIZEOF_VOID_P
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EVENT__SIZEOF_VOID__
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint64_t
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int64_t
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned __int64
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed __int64
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libevent/include/event2/util.h
      type_or_value: long long
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libevent/include/event2/util.h
      type_or_value: long
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint32_t
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int32_t
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed int
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed long
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed int
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint16_t
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int16_t
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned short
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed short
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed int
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned short
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed short
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint8_t
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint8_t
    - item_type: preproc_def
      name: ev_int8_t
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int8_t
    - item_type: preproc_def
      name: ev_uint8_t
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int8_t
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint8_t
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned char
    - item_type: preproc_def
      name: ev_int8_t
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed char
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uintptr_t
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libevent/include/event2/util.h
      type_or_value: intptr_t
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_uint32_t
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int32_t
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_uint64_t
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int64_t
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_ssize_t
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EVENT__ssize_t
    - item_type: preproc_def
      name: ev_ssize_t
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ssize_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int64_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int64_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int32_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libevent/include/event2/util.h
      type_or_value: off_t
    - item_type: preproc_def
      name: EV_UINT64_MAX
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((((ev_uint64_t)0xffffffffUL) << 32) | 0xffffffffUL)
    - item_type: preproc_def
      name: EV_INT64_MAX
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((((ev_int64_t) 0x7fffffffL) << 32) | 0xffffffffL)
    - item_type: preproc_def
      name: EV_INT64_MIN
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT64_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT32_MAX
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_uint32_t)0xffffffffUL)
    - item_type: preproc_def
      name: EV_INT32_MAX
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_int32_t) 0x7fffffffL)
    - item_type: preproc_def
      name: EV_INT32_MIN
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT32_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT16_MAX
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_uint16_t)0xffffUL)
    - item_type: preproc_def
      name: EV_INT16_MAX
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_int16_t) 0x7fffL)
    - item_type: preproc_def
      name: EV_INT16_MIN
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT16_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT8_MAX
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '255'
    - item_type: preproc_def
      name: EV_INT8_MAX
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '127'
    - item_type: preproc_def
      name: EV_INT8_MIN
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT8_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT64_MAX
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: EV_INT64_MAX
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: EV_INT64_MIN
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: EV_UINT32_MAX
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: EV_INT32_MAX
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: EV_INT32_MIN
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: EV_UINT16_MAX
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT16_MAX
    - item_type: preproc_def
      name: EV_INT16_MIN
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT16_MIN
    - item_type: preproc_def
      name: EV_INT16_MAX
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT16_MAX
    - item_type: preproc_def
      name: EV_UINT8_MAX
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT8_MAX
    - item_type: preproc_def
      name: EV_INT8_MAX
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT8_MAX
    - item_type: preproc_def
      name: EV_INT8_MIN
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT8_MIN
    - item_type: preproc_def
      name: EV_SIZE_MAX
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_UINT64_MAX
    - item_type: preproc_def
      name: EV_SSIZE_MAX
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_INT64_MAX
    - item_type: preproc_def
      name: EV_SIZE_MAX
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_UINT32_MAX
    - item_type: preproc_def
      name: EV_SSIZE_MAX
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_INT32_MAX
    - item_type: preproc_def
      name: EV_SIZE_MAX
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: EV_SSIZE_MAX
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: EV_SSIZE_MIN
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_SSIZE_MAX) - 1)
    - item_type: preproc_def
      name: ev_socklen_t
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int
    - item_type: preproc_def
      name: ev_socklen_t
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EVENT__socklen_t
    - item_type: preproc_def
      name: ev_socklen_t
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/libevent/include/event2/util.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: ss_family
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/libevent/include/event2/util.h
      type_or_value: __ss_family
    - item_type: preproc_def
      name: evutil_socket_t
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/libevent/include/event2/util.h
      type_or_value: intptr_t
    - item_type: preproc_def
      name: evutil_socket_t
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int
    - item_type: preproc_def
      name: EV_MONOT_PRECISE
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EV_MONOT_FALLBACK
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVUTIL_INVALID_SOCKET
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INVALID_SOCKET
    - item_type: preproc_def
      name: EVUTIL_INVALID_SOCKET
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: EVUTIL_INVALID_SOCKET
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: evutil_addrinfo
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/libevent/include/event2/util.h
      type_or_value: addrinfo
    - item_type: preproc_def
      name: EVUTIL_EAI_ADDRFAMILY
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_ADDRFAMILY
    - item_type: preproc_def
      name: EVUTIL_EAI_ADDRFAMILY
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-901'
    - item_type: preproc_def
      name: EVUTIL_EAI_AGAIN
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_AGAIN
    - item_type: preproc_def
      name: EVUTIL_EAI_AGAIN
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-902'
    - item_type: preproc_def
      name: EVUTIL_EAI_BADFLAGS
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_BADFLAGS
    - item_type: preproc_def
      name: EVUTIL_EAI_BADFLAGS
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-903'
    - item_type: preproc_def
      name: EVUTIL_EAI_FAIL
      pos:
        line_end: 765
        line_start: 764
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_FAIL
    - item_type: preproc_def
      name: EVUTIL_EAI_FAIL
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-904'
    - item_type: preproc_def
      name: EVUTIL_EAI_FAMILY
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_FAMILY
    - item_type: preproc_def
      name: EVUTIL_EAI_FAMILY
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-905'
    - item_type: preproc_def
      name: EVUTIL_EAI_MEMORY
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_MEMORY
    - item_type: preproc_def
      name: EVUTIL_EAI_MEMORY
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-906'
    - item_type: preproc_def
      name: EVUTIL_EAI_NODATA
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_NODATA
    - item_type: preproc_def
      name: EVUTIL_EAI_NODATA
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-907'
    - item_type: preproc_def
      name: EVUTIL_EAI_NONAME
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_NONAME
    - item_type: preproc_def
      name: EVUTIL_EAI_NONAME
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-908'
    - item_type: preproc_def
      name: EVUTIL_EAI_SERVICE
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_SERVICE
    - item_type: preproc_def
      name: EVUTIL_EAI_SERVICE
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-909'
    - item_type: preproc_def
      name: EVUTIL_EAI_SOCKTYPE
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_SOCKTYPE
    - item_type: preproc_def
      name: EVUTIL_EAI_SOCKTYPE
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-910'
    - item_type: preproc_def
      name: EVUTIL_EAI_SYSTEM
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_SYSTEM
    - item_type: preproc_def
      name: EVUTIL_EAI_SYSTEM
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-911'
    - item_type: preproc_def
      name: EVUTIL_EAI_CANCEL
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-90001'
    - item_type: preproc_def
      name: EVUTIL_AI_PASSIVE
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_PASSIVE
    - item_type: preproc_def
      name: EVUTIL_AI_PASSIVE
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: EVUTIL_AI_CANONNAME
      pos:
        line_end: 816
        line_start: 815
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_CANONNAME
    - item_type: preproc_def
      name: EVUTIL_AI_CANONNAME
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICHOST
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_NUMERICHOST
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICHOST
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICSERV
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_NUMERICSERV
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICSERV
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: EVUTIL_AI_V4MAPPED
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_V4MAPPED
    - item_type: preproc_def
      name: EVUTIL_AI_V4MAPPED
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: EVUTIL_AI_ALL
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_ALL
    - item_type: preproc_def
      name: EVUTIL_AI_ALL
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: EVUTIL_AI_ADDRCONFIG
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_ADDRCONFIG
    - item_type: preproc_def
      name: EVUTIL_AI_ADDRCONFIG
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x40000'
    structs:
    - fields:
      - name: ai_flags
        type: int
      - name: ai_family
        type: int
      - name: ai_socktype
        type: int
      - name: ai_protocol
        type: int
      - name: ai_addrlen
        type: size_t
      - name: '*ai_canonname'
        type: char
      - name: '*ai_addr'
        type: struct sockaddr
      - name: '*ai_next'
        type: struct evutil_addrinfo
      item_type: struct
      name: evutil_addrinfo
      pos:
        line_end: 739
        line_start: 730
        source_file: /src/libevent/include/event2/util.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/thread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVTHREAD_WRITE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVTHREAD_READ
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EVTHREAD_TRY
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EVTHREAD_LOCK_API_VERSION
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_LOCKTYPE_RECURSIVE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_LOCKTYPE_READWRITE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVTHREAD_CONDITION_API_VERSION
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_USE_WINDOWS_THREADS_IMPLEMENTED
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_PTHREAD_PRIO_INHERIT
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVTHREAD_USE_PTHREADS_IMPLEMENTED
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    structs:
    - fields:
      - name: lock_api_version
        type: int
      - name: supported_locktypes
        type: unsigned
      - name: '*(*alloc)(unsigned locktype)'
        type: void
      - name: (*free)(void *lock, unsigned locktype)
        type: void
      - name: (*lock)(unsigned mode, void *lock)
        type: int
      - name: (*unlock)(unsigned mode, void *lock)
        type: int
      item_type: struct
      name: evthread_lock_callbacks
      pos:
        line_end: 118
        line_start: 94
        source_file: /src/libevent/include/event2/thread.h
    - fields:
      - name: condition_api_version
        type: int
      - name: '*(*alloc_condition)(unsigned condtype)'
        type: void
      - name: (*free_condition)(void *cond)
        type: void
      - name: (*signal_condition)(void *cond, int broadcast)
        type: int
      - name: "(*wait_condition)(void *cond, void *lock,\n\t    const struct timeval
          *timeout)"
        type: int
      item_type: struct
      name: evthread_condition_callbacks
      pos:
        line_end: 169
        line_start: 139
        source_file: /src/libevent/include/event2/thread.h
    typedefs: []
    union: []
- function_names:
  - EVBUFFER_INPUT
  - EVBUFFER_OUTPUT
  source_file: /src/libevent/include/event2/bufferevent_compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: evbuffercb
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: bufferevent_data_cb
    - item_type: preproc_def
      name: everrorcb
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: bufferevent_event_cb
    - item_type: preproc_def
      name: EVBUFFER_READ
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_READING
    - item_type: preproc_def
      name: EVBUFFER_WRITE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_WRITING
    - item_type: preproc_def
      name: EVBUFFER_EOF
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_EOF
    - item_type: preproc_def
      name: EVBUFFER_ERROR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_ERROR
    - item_type: preproc_def
      name: EVBUFFER_TIMEOUT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_TIMEOUT
    structs: []
    typedefs: []
    union: []
- function_names:
  - TAILQ_ENTRY
  source_file: /src/libevent/include/event2/rpc_struct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_NONE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_TIMEOUT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_BADPAYLOAD
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_UNSTARTED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_HOOKABORTED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '4'
    structs:
    - fields:
      - name: error
        type: int
      - name: '*http_req'
        type: struct evhttp_request
      item_type: struct
      name: evrpc_status
      pos:
        line_end: 63
        line_start: 53
        source_file: /src/libevent/include/event2/rpc_struct.h
    - fields:
      - name: (evrpc)
        type: TAILQ_ENTRY
      - name: '* uri'
        type: char
      - name: '*(*request_new)(void *)'
        type: void
      - name: '*request_new_arg'
        type: void
      - name: (*request_free)(void *)
        type: void
      - name: (*request_unmarshal)(void *, struct evbuffer *)
        type: int
      - name: '*(*reply_new)(void *)'
        type: void
      - name: '*reply_new_arg'
        type: void
      - name: (*reply_free)(void *)
        type: void
      - name: (*reply_complete)(void *)
        type: int
      - name: (*reply_marshal)(struct evbuffer*, void *)
        type: void
      - name: (*cb)(struct evrpc_req_generic *, void *)
        type: void
      - name: '*cb_arg'
        type: void
      - name: '*base'
        type: struct evrpc_base
      item_type: struct
      name: evrpc
      pos:
        line_end: 103
        line_start: 68
        source_file: /src/libevent/include/event2/rpc_struct.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/http_compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: evhttp_request_uri
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/include/event2/http_compat.h
      type_or_value: evhttp_request_get_uri
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/dns.h
  types:
    enum:
    - enumerators:
      - name: EVDNS_SOPT_TCP_MAX_CLIENTS
      - name: EVDNS_SOPT_TCP_IDLE_TIMEOUT
      item_type: enum
      name: evdns_server_option
      pos:
        line_end: 748
        line_start: 735
        source_file: /src/libevent/include/event2/dns.h
    preproc_defs:
    - item_type: preproc_def
      name: DNS_ERR_NONE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DNS_ERR_FORMAT
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DNS_ERR_SERVERFAILED
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DNS_ERR_NOTEXIST
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DNS_ERR_NOTIMPL
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_ERR_REFUSED
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '5'
    - item_type: preproc_def
      name: DNS_ERR_TRUNCATED
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '65'
    - item_type: preproc_def
      name: DNS_ERR_UNKNOWN
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '66'
    - item_type: preproc_def
      name: DNS_ERR_TIMEOUT
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '67'
    - item_type: preproc_def
      name: DNS_ERR_SHUTDOWN
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '68'
    - item_type: preproc_def
      name: DNS_ERR_CANCEL
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '69'
    - item_type: preproc_def
      name: DNS_ERR_NODATA
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '70'
    - item_type: preproc_def
      name: DNS_IPv4_A
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DNS_PTR
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DNS_IPv6_AAAA
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DNS_CNAME
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_QUERY_NO_SEARCH
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DNS_QUERY_USEVC
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: DNS_QUERY_IGNTC
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: DNS_CNAME_CALLBACK
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: DNS_OPTION_SEARCH
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DNS_OPTION_NAMESERVERS
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DNS_OPTION_MISC
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_OPTION_HOSTSFILE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DNS_OPTIONS_ALL
      pos:
        line_end: 231
        line_start: 224
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: "(    \\\n    DNS_OPTION_SEARCH      | \\\n    DNS_OPTION_NAMESERVERS
        | \\\n    DNS_OPTION_MISC        | \\\n    DNS_OPTION_HOSTSFILE   | \\\n    0
        \                       \\\n)"
    - item_type: preproc_def
      name: DNS_OPTION_NAMESERVERS_NO_DEFAULT
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DNS_NO_SEARCH
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: DNS_QUERY_NO_SEARCH
    - item_type: preproc_def
      name: EVDNS_BASE_INITIALIZE_NAMESERVERS
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_BASE_NO_CACHE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EVDNS_BASE_DISABLE_WHEN_INACTIVE
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: EVDNS_BASE_NAMESERVERS_NO_DEFAULT
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: EVDNS_ERROR_NONE
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVDNS_ERROR_FAILED_TO_OPEN_FILE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_ERROR_FAILED_TO_STAT_FILE
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVDNS_ERROR_FILE_TOO_LARGE
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EVDNS_ERROR_OUT_OF_MEMORY
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EVDNS_ERROR_SHORT_READ_FROM_FILE
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EVDNS_ERROR_NO_NAMESERVERS_CONFIGURED
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EVDNS_ANSWER_SECTION
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVDNS_AUTHORITY_SECTION
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_ADDITIONAL_SECTION
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVDNS_TYPE_A
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_TYPE_NS
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVDNS_TYPE_CNAME
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EVDNS_TYPE_SOA
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EVDNS_TYPE_PTR
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '12'
    - item_type: preproc_def
      name: EVDNS_TYPE_MX
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '15'
    - item_type: preproc_def
      name: EVDNS_TYPE_TXT
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EVDNS_TYPE_AAAA
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '28'
    - item_type: preproc_def
      name: EVDNS_QTYPE_AXFR
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '252'
    - item_type: preproc_def
      name: EVDNS_QTYPE_ALL
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '255'
    - item_type: preproc_def
      name: EVDNS_CLASS_INET
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_FLAGS_AA
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: EVDNS_FLAGS_RD
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x080'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evdns_callback_type) (int result, char type, int count, int ttl, void
        *addresses, void *arg)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/libevent/include/event2/dns.h
      type: void
    - item_type: typedef
      name: (*evdns_debug_log_fn_type)(int is_warning, const char *msg)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/libevent/include/event2/dns.h
      type: void
    - item_type: typedef
      name: (*evdns_request_callback_fn_type)(struct evdns_server_request *, void
        *)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/libevent/include/event2/dns.h
      type: void
    - item_type: typedef
      name: (*evdns_getaddrinfo_cb)(int result, struct evutil_addrinfo *res, void
        *arg)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/libevent/include/event2/dns.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/listener.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LEV_OPT_LEAVE_SOCKETS_BLOCKING
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: LEV_OPT_CLOSE_ON_FREE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<1)
    - item_type: preproc_def
      name: LEV_OPT_CLOSE_ON_EXEC
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<2)
    - item_type: preproc_def
      name: LEV_OPT_REUSEABLE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<3)
    - item_type: preproc_def
      name: LEV_OPT_THREADSAFE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<4)
    - item_type: preproc_def
      name: LEV_OPT_DISABLED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<5)
    - item_type: preproc_def
      name: LEV_OPT_DEFERRED_ACCEPT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<6)
    - item_type: preproc_def
      name: LEV_OPT_REUSEABLE_PORT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<7)
    - item_type: preproc_def
      name: LEV_OPT_BIND_IPV6ONLY
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<8)
    - item_type: preproc_def
      name: LEV_OPT_BIND_IPV4_AND_IPV6
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<9)
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evconnlistener_cb)(struct evconnlistener *, evutil_socket_t, struct
        sockaddr *, int socklen, void *)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/libevent/include/event2/listener.h
      type: void
    - item_type: typedef
      name: (*evconnlistener_errorcb)(struct evconnlistener *, void *)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/include/event2/listener.h
      type: void
    union: []
- function_names:
  - TAILQ_ENTRY
  - TAILQ_HEAD
  - LIST_ENTRY
  source_file: /src/libevent/include/event2/event_struct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVLIST_TIMEOUT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVLIST_INSERTED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVLIST_SIGNAL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVLIST_ACTIVE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EVLIST_INTERNAL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EVLIST_ACTIVE_LATER
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: EVLIST_FINALIZING
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: EVLIST_INIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: EVLIST_ALL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0xff'
    structs:
    - fields:
      - name: (event_callback)
        type: TAILQ_ENTRY
      - name: evcb_flags
        type: short
      - name: evcb_pri
        type: ev_uint8_t
      - name: evcb_closure
        type: ev_uint8_t
      - name: evcb_cb_union
        type: "union {\n\t\tvoid (*evcb_callback)(evutil_socket_t, short, void *);\n\t\tvoid
          (*evcb_selfcb)(struct event_callback *, void *);\n\t\tvoid (*evcb_evfinalize)(struct
          event *, void *);\n\t\tvoid (*evcb_cbfinalize)(struct event_callback *,
          void *);\n\t}"
      - name: '*evcb_arg'
        type: void
      item_type: struct
      name: event_callback
      pos:
        line_end: 119
        line_start: 106
        source_file: /src/libevent/include/event2/event_struct.h
    - fields:
      - name: ev_evcallback
        type: struct event_callback
      - name: ev_timeout_pos
        type: "union {\n\t\tTAILQ_ENTRY(event) ev_next_with_common_timeout;\n\t\tsize_t
          min_heap_idx;\n\t}"
      - name: ev_fd
        type: evutil_socket_t
      - name: ev_events
        type: short
      - name: ev_res
        type: short
      - name: '*ev_base'
        type: struct event_base
      - name: ev_
        type: "union {\n\t\t/* used for io events */\n\t\tstruct {\n\t\t\tLIST_ENTRY
          (event) ev_io_next;\n\t\t\tstruct timeval ev_timeout;\n\t\t} ev_io;\n\n\t\t/*
          used by signal events */\n\t\tstruct {\n\t\t\tLIST_ENTRY (event) ev_signal_next;\n\t\t\tshort
          ev_ncalls;\n\t\t\t/* Allows deletes in callback */\n\t\t\tshort *ev_pncalls;\n\t\t}
          ev_signal;\n\t}"
      - name: ev_timeout
        type: struct timeval
      item_type: struct
      name: event
      pos:
        line_end: 155
        line_start: 122
        source_file: /src/libevent/include/event2/event_struct.h
    typedefs: []
    union: []
- function_names:
  - EVTAG_HAS
  - EVTAG_ASSIGN
  - EVTAG_ASSIGN_WITH_LEN
  - EVTAG_GET
  - EVTAG_GET_WITH_LEN
  - EVTAG_ARRAY_ADD_VALUE
  - EVTAG_ARRAY_ADD
  - EVTAG_ARRAY_GET
  - EVTAG_ARRAY_LEN
  - EVRPC_STRUCT
  - EVRPC_HEADER
  - EVRPC_MAKE_CTX
  - EVRPC_GENERATE
  - EVRPC_REQUEST_HTTP
  - EVRPC_REQUEST_DONE
  - EVRPC_REGISTER
  - EVRPC_UNREGISTER
  - EVRPC_MAKE_REQUEST
  source_file: /src/libevent/include/event2/rpc.h
  types:
    enum:
    - enumerators:
      - name: EVRPC_INPUT
      - name: EVRPC_OUTPUT
      item_type: enum
      name: EVRPC_HOOK_TYPE
      pos:
        line_end: 474
        line_start: 471
        source_file: /src/libevent/include/event2/rpc.h
    - enumerators:
      - name: EVRPC_TERMINATE
        value: '-1'
      - name: EVRPC_CONTINUE
        value: '0'
      - name: EVRPC_PAUSE
        value: '1'
      item_type: enum
      name: EVRPC_HOOK_RESULT
      pos:
        line_end: 493
        line_start: 489
        source_file: /src/libevent/include/event2/rpc.h
    preproc_defs:
    - item_type: preproc_def
      name: INPUT
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/libevent/include/event2/rpc.h
      type_or_value: EVRPC_INPUT
    - item_type: preproc_def
      name: OUTPUT
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/libevent/include/event2/rpc.h
      type_or_value: EVRPC_OUTPUT
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/ws.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS_CR_NONE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WS_CR_NORMAL
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: WS_CR_PROTO_ERR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '1002'
    - item_type: preproc_def
      name: WS_CR_DATA_TOO_BIG
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '1009'
    - item_type: preproc_def
      name: WS_TEXT_FRAME
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: WS_BINARY_FRAME
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '0x2'
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*ws_on_msg_cb)(\n\tstruct evws_connection *, int type, const unsigned
        char *, size_t, void *)"
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libevent/include/event2/ws.h
      type: void
    - item_type: typedef
      name: (*ws_on_close_cb)(struct evws_connection *, void *)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/libevent/include/event2/ws.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/dns_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  - EVENT_IN_DOXYGEN_
  - EVENT_IN_DOXYGEN_
  - evtimer_assign
  - evtimer_new
  - evtimer_add
  - evtimer_del
  - evtimer_pending
  - evtimer_initialized
  - evsignal_add
  - evsignal_assign
  - evsignal_new
  - evsignal_del
  - evsignal_pending
  - evsignal_initialized
  - evuser_new
  - evuser_del
  - evuser_pending
  - evuser_initialized
  - evuser_trigger
  - event_get_signal
  source_file: /src/libevent/include/event2/event.h
  types:
    enum:
    - enumerators:
      - name: EV_FEATURE_ET
        value: '0x01'
      - name: EV_FEATURE_EARLY_CLOSE
        value: '0x08'
      - name: EV_FEATURE_O1
        value: '0x02'
      - name: EV_FEATURE_FDS
        value: '0x04'
      item_type: enum
      name: event_method_feature
      pos:
        line_end: 530
        line_start: 512
        source_file: /src/libevent/include/event2/event.h
    - enumerators:
      - name: EVENT_BASE_FLAG_NOLOCK
        value: '0x01'
      - name: EVENT_BASE_FLAG_STARTUP_IOCP
        value: '0x04'
      - name: EVENT_BASE_FLAG_NO_CACHE_TIME
        value: '0x08'
      - name: EVENT_BASE_FLAG_IGNORE_ENV
        value: '0x02'
      - name: EVENT_BASE_FLAG_EPOLL_USE_CHANGELIST
        value: '0x10'
      - name: EVENT_BASE_FLAG_PRECISE_TIMER
        value: '0x20'
      - name: EVENT_BASE_FLAG_EPOLL_DISALLOW_TIMERFD
        value: '0x40'
      - name: EVENT_BASE_FLAG_USE_SIGNALFD
        value: '0x80'
      item_type: enum
      name: event_base_config_flag
      pos:
        line_end: 606
        line_start: 540
        source_file: /src/libevent/include/event2/event.h
    preproc_defs:
    - item_type: preproc_def
      name: EVENT_BASE_COUNT_ACTIVE
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 1U
    - item_type: preproc_def
      name: EVENT_BASE_COUNT_VIRTUAL
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 2U
    - item_type: preproc_def
      name: EVENT_BASE_COUNT_ADDED
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 4U
    - item_type: preproc_def
      name: EVENT_LOG_DEBUG
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVENT_LOG_MSG
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVENT_LOG_WARN
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVENT_LOG_ERR
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '3'
    - item_type: preproc_def
      name: _EVENT_LOG_DEBUG
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_DEBUG
    - item_type: preproc_def
      name: _EVENT_LOG_MSG
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_MSG
    - item_type: preproc_def
      name: _EVENT_LOG_WARN
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_WARN
    - item_type: preproc_def
      name: _EVENT_LOG_ERR
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_ERR
    - item_type: preproc_def
      name: EVENT_DBG_ALL
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 0xffffffffu
    - item_type: preproc_def
      name: EVENT_DBG_NONE
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVLOOP_ONCE
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVLOOP_NONBLOCK
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVLOOP_NO_EXIT_ON_EMPTY
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EV_TIMEOUT
      pos:
        line_end: 955
        line_start: 954
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EV_READ
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EV_WRITE
      pos:
        line_end: 959
        line_start: 958
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EV_SIGNAL
      pos:
        line_end: 961
        line_start: 960
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EV_PERSIST
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EV_ET
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: EV_FINALIZE
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: EV_CLOSED
      pos:
        line_end: 988
        line_start: 987
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: LIBEVENT_VERSION
      pos:
        line_end: 1471
        line_start: 1470
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT__VERSION
    - item_type: preproc_def
      name: LIBEVENT_VERSION_NUMBER
      pos:
        line_end: 1474
        line_start: 1473
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT__NUMERIC_VERSION
    - item_type: preproc_def
      name: EVENT_MAX_PRIORITIES
      pos:
        line_end: 1477
        line_start: 1476
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '256'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*event_log_cb)(int severity, const char *msg)
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_fatal_cb)(int err)
      pos:
        line_end: 772
        line_start: 772
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_callback_fn)(evutil_socket_t, short, void *)
      pos:
        line_end: 1047
        line_start: 1047
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_finalize_callback_fn)(struct event *, void *)
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_base_foreach_event_cb)(const struct event_base *, const struct
        event *, void *)
      pos:
        line_end: 1626
        line_start: 1626
        source_file: /src/libevent/include/event2/event.h
      type: int
    union: []
- function_names:
  - EVTAG_ASSIGN
  - EVTAG_GET
  - EVTAG_ADD
  - EVTAG_LEN
  source_file: /src/libevent/include/event2/rpc_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - encode_int
  - encode_int64
  source_file: /src/libevent/include/event2/tag_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/watch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evwatch_prepare_cb)(struct evwatch *, const struct evwatch_prepare_cb_info
        *, void *)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/include/event2/watch.h
      type: void
    - item_type: typedef
      name: (*evwatch_check_cb)(struct evwatch *, const struct evwatch_check_cb_info
        *, void *)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libevent/include/event2/watch.h
      type: void
    union: []
- function_names:
  - TAILQ_ENTRY
  - TAILQ_HEAD
  source_file: /src/libevent/include/event2/keyvalq_struct.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (evkeyval)
        type: TAILQ_ENTRY
      - name: '*key'
        type: char
      - name: '*value'
        type: char
      item_type: struct
      name: evkeyval
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/libevent/include/event2/keyvalq_struct.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/visibility.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVENT2_EXPORT_SYMBOL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __global
    - item_type: preproc_def
      name: EVENT2_EXPORT_SYMBOL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __attribute__ ((visibility("default")))
    - item_type: preproc_def
      name: EVENT2_EXPORT_SYMBOL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: EVENT2_CORE_EXPORT_SYMBOL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: EVENT2_CORE_EXPORT_SYMBOL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: EVENT2_CORE_EXPORT_SYMBOL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: EVENT2_EXPORT_SYMBOL
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  source_file: /src/libevent/include/event2/buffer.h
  types:
    enum:
    - enumerators:
      - name: EVBUFFER_EOL_ANY
      - name: EVBUFFER_EOL_LF
      - name: EVBUFFER_EOL_NUL
      - name: EVBUFFER_EOL_CRLF
      - name: EVBUFFER_EOL_CRLF_STRICT
      item_type: enum
      name: evbuffer_eol_style
      pos:
        line_end: 442
        line_start: 422
        source_file: /src/libevent/include/event2/buffer.h
    - enumerators:
      - name: EVBUFFER_PTR_SET
      - name: EVBUFFER_PTR_ADD
      item_type: enum
      name: evbuffer_ptr_how
      pos:
        line_end: 824
        line_start: 818
        source_file: /src/libevent/include/event2/buffer.h
    preproc_defs:
    - item_type: preproc_def
      name: evbuffer_iovec
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: iovec
    - item_type: preproc_def
      name: EVBUFFER_FLAG_DRAINS_TO_FD
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVBUF_FS_CLOSE_ON_FREE
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVBUF_FS_DISABLE_MMAP
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVBUF_FS_DISABLE_SENDFILE
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVBUF_FS_DISABLE_LOCKING
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EVBUFFER_CB_ENABLED
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '1'
    structs:
    - fields:
      - name: pos
        type: ev_ssize_t
      - name: internal_
        type: "struct {\n\t\tvoid *chain;\n\t\tsize_t pos_in_chain;\n\t}"
      item_type: struct
      name: evbuffer_ptr
      pos:
        line_end: 124
        line_start: 115
        source_file: /src/libevent/include/event2/buffer.h
    - fields:
      - name: '*iov_base'
        type: void
      - name: iov_len
        type: size_t
      item_type: struct
      name: evbuffer_iovec
      pos:
        line_end: 141
        line_start: 136
        source_file: /src/libevent/include/event2/buffer.h
    - fields:
      - name: orig_size
        type: size_t
      - name: n_added
        type: size_t
      - name: n_deleted
        type: size_t
      item_type: struct
      name: evbuffer_cb_info
      pos:
        line_end: 917
        line_start: 909
        source_file: /src/libevent/include/event2/buffer.h
    typedefs:
    - item_type: typedef
      name: "(*evbuffer_ref_cleanup_cb)(const void *data,\n    size_t datalen, void
        *extra)"
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/libevent/include/event2/buffer.h
      type: void
    - item_type: typedef
      name: "(*evbuffer_file_segment_cleanup_cb)(\n    struct evbuffer_file_segment
        const* seg, int flags, void* arg)"
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/libevent/include/event2/buffer.h
      type: void
    - item_type: typedef
      name: (*evbuffer_cb_func)(struct evbuffer *buffer, const struct evbuffer_cb_info
        *info, void *arg)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/libevent/include/event2/buffer.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/WIN32-Code/getopt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: no_argument
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/libevent/WIN32-Code/getopt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: required_argument
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libevent/WIN32-Code/getopt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: optional_argument
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/libevent/WIN32-Code/getopt.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: has_arg
        type: int
      - name: '*flag'
        type: int
      - name: val
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 19
        line_start: 13
        source_file: /src/libevent/WIN32-Code/getopt.h
    typedefs: []
    union: []
- function_names:
  - __P
  - _DIAGASSERT
  source_file: /src/libevent/WIN32-Code/getopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/WIN32-Code/getopt.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/WIN32-Code/getopt.c
      type_or_value: (int)':'
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/WIN32-Code/getopt.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __P
  - _DIAGASSERT
  source_file: /src/libevent/WIN32-Code/getopt_long.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/WIN32-Code/getopt_long.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/WIN32-Code/getopt_long.c
      type_or_value: (int)':'
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/WIN32-Code/getopt_long.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPLAY_INITIALIZER
  - SPLAY_INIT
  - SPLAY_ENTRY
  - SPLAY_LEFT
  - SPLAY_RIGHT
  - SPLAY_ROOT
  - SPLAY_EMPTY
  - SPLAY_ROTATE_RIGHT
  - SPLAY_ROTATE_LEFT
  - SPLAY_LINKLEFT
  - SPLAY_LINKRIGHT
  - SPLAY_ASSEMBLE
  - SPLAY_PROTOTYPE
  - _SPLAY_FIND
  - _SPLAY_NEXT
  - _SPLAY_MIN_MAX
  - SPLAY_GENERATE
  - _SPLAY_MINMAX
  - SPLAY_INSERT
  - SPLAY_REMOVE
  - SPLAY_FIND
  - SPLAY_NEXT
  - SPLAY_MIN
  - SPLAY_MAX
  - SPLAY_FOREACH
  - RB_INITIALIZER
  - RB_INIT
  - RB_ENTRY
  - RB_LEFT
  - RB_RIGHT
  - RB_PARENT
  - RB_COLOR
  - RB_ROOT
  - RB_EMPTY
  - RB_SET
  - RB_SET_BLACKRED
  - RB_ROTATE_LEFT
  - RB_ROTATE_RIGHT
  - RB_PROTOTYPE
  - RB_GENERATE
  - _RB_INSERT
  - _RB_FIND
  - _RB_NEXT
  - _RB_MINMAX
  - RB_INSERT
  - RB_REMOVE
  - RB_FIND
  - RB_NEXT
  - RB_MIN
  - RB_MAX
  - RB_FOREACH
  source_file: /src/libevent/WIN32-Code/tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_NEGINF
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SPLAY_INF
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_BLACK
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RB_RED
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_NEGINF
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: RB_INF
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test
  - test
  - test
  - test
  - test
  - main
  source_file: /src/libevent/test-export/test-export.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
